当前位置: 首页 > news >正文

dlink nas做网站合肥优化

dlink nas做网站,合肥优化,php建设网站用什么软件,网上申报目录#xff1a;概述图像基本变换仿射变换原理python实现一、概述图像的几何变换主要包括#xff1a;平移、缩放、旋转、仿射、透视等等。图像变换是建立在矩阵运算基础上的#xff0c;通过矩阵运算可以很快的找到不同图像的对应关系。理解变换的原理需要理解变换的构造方法…目录概述图像基本变换仿射变换原理python实现一、概述图像的几何变换主要包括平移、缩放、旋转、仿射、透视等等。图像变换是建立在矩阵运算基础上的通过矩阵运算可以很快的找到不同图像的对应关系。理解变换的原理需要理解变换的构造方法以及矩阵的运算方法。图像的几何变换主要分为三类刚性变换、仿射变换和透视变换如下图 仿射变换是从一个二维坐标系变换到另一个二维坐标系属于线性变换。通过已知3对坐标点可以求得变换矩阵。透视变换是从一个二维坐标系变换到一个三维坐标系属于非线性变换。通过已知4对坐标点可以求得变换矩阵。二、图像基本变换图像的几何变换包含很多变换其中有一些基本变换而仿射变换和透视变换就是对这些基本变换进行组合实现的。基本变换具体包括平移Translation、缩放Scale、旋转Rotation、翻转Flip和错切Shear。a. 平移b. 缩放c. 旋转d. 翻转e. 错切错切亦称为剪切或错位变换包含水平错切和垂直错切常用于产生弹性物体的变形处理。下面这张图可能更形象三、仿射变换3.1、原理对于二维坐标系的一个坐标点xy可以使用一个2x2矩阵来调整xy的值而通过调整xy可以实现二维形状的线性变换旋转缩放所以整个转换过程就是对xy调整的过程。仿射变换Affine Transformation是指在向量空间中进行一次线性变换(乘以一个矩阵)和一次平移(加上一个向量)变换到另一个向量空间的过程。仿射变换代表的是两幅图之间的映射关系仿射变换矩阵为2x3的矩阵如下图中的矩阵M其中的B起着 平移 的作用而A中的对角线决定 缩放反对角线决定 旋转 或 错切。所以仿射变换可以由一个矩阵A和一个向量B给出原像素点坐标(x,y)经过仿射变换后的点的坐标是T则矩阵仿射变换基本算法原理所以仿射变换是一种二维坐标x, y到二维坐标u, v的线性变换其数学表达式如下 其实到这里还没完我们知道缩放和旋转通过矩阵乘法来实现而平移是通过矩阵加法来实现的为了将这几个操作都通过一个矩阵来实现所以构造出了上面那个 2x3 的矩阵。但是这个会改变图像的尺寸比如一个 2x2 的图像乘以 2x3 的矩阵会得到 2x3 的图像所以为了解决这个问题我们就增加一个维度也就是构造齐次坐标矩阵。关于齐次坐标的更多内容可以查看这里还有这里。最终得到的齐次坐标矩阵表示形式为仿射变换保持了二维图像的“平直性”和“平行性”平直性直线经仿射变换后还是直线圆弧经仿射变换后还是圆弧平行性直线之间的相对位置关系保持不变平行线经仿射变换后依然为平行线直线上点的位置顺序不会发生变化向量间夹角可能会发生变化3.2、python实现通过仿射变换将图片中的每个像素点按照一定的规律映射到新的位置仿射变化需要一个转换矩阵但是由于仿射变换比较复杂一般很难直接找到这个矩阵opencv提供了根据源图像和目标图像上三个对应的点来自动创建变换矩阵矩阵维度为 2x3。两个图像中非共线的三对对应点确定唯一的一个仿射变换。经仿射变换后图像中的三个关键点依然构成三角形但三角形形状已经发生变化。这个函数是 cv2.getAffineTransform(pos1,pos2)其中两个位置就是变换前后的对应位置关系。输出的就是仿射矩阵M最后这个矩阵会被传给函数 cv2.warpAffine() 来实现仿射变换。原图为import cv2 import numpy as np img cv2.imread(image0.jpg, 1) height, width img.shape[:2] # 405x413 # 在原图像和目标图像上各选择三个点 matSrc np.float32([[0, 0],[0, height-1],[width-1, 0]]) matDst np.float32([[0, 0],[30, height-30],[width-30, 30]]) # 得到变换矩阵 matAffine cv2.getAffineTransform(matSrc, matDst) # 进行仿射变换 dst cv2.warpAffine(img, matAffine, (width,height))变换矩阵的数据类型是 np.float32函数 cv2.warpAffine() 的第三个参数是输出图像的尺寸(宽高)。仿射变换后的图因为平移和缩放的矩阵的比较简单我们可以直接手动指定。# 图像平移 # 移位矩阵水平方向移动100个像素竖直方向移动200个像素 matShift np.float32([[1,0,100],[0,1,200]]) # 2行3列 dst cv2.warpAffine(img, matShift, (width,height)) # 图像缩放 # 缩放矩阵长宽各缩放一半 matScale np.float32([[0.5,0,0],[0,0.5,0]]) dst cv2.warpAffine(img, matScale, (int(width/2),int(height/2)))向左下平移缩小50%要实现图像旋转需要通过 cv2.getRotationMatrix2D 来得到二维旋转变换矩阵2行3列。cv2.getRotationMatrix2D 三个参数分别为1.旋转中心2.旋转角度3.缩放比例。角度为正则图像逆时针旋转旋转后图像可能会超出边界。matRotate cv2.getRotationMatrix2D((width*0.5, height*0.5), 45, 1.0) dst cv2.warpAffine(img, matRotate, (width,height))如果觉得有用点个赞吧(ง •̀_•́)ง。
http://www.zqtcl.cn/news/879192/

相关文章:

  • 织梦做的网站有点慢商贸网站
  • 海外红酒网站建设wordpress 分类 文章
  • 七星彩网站建设wordpress w3
  • 广州网站建设全包百度怎么优化关键词排名
  • 中山网站制作服务公司做环评的网站
  • 江山市住房和城乡建设局网站iis部署网站 错误400
  • 网站域名如何备案建设厅公积金中心网站
  • 网站怎么建设?电子商务网站开发相关技术
  • 苏州网站设计公司济南兴田德润厉害吗python基础教程第3版
  • 网站多久备案一次电子商务平台信息系统建设
  • 网站开发方面的文献自己怎么建个免费网站吗
  • 建设网站前的市场分析百度竞价推广是什么
  • 专门做照片书的网站阳谷聊城网站优化
  • 国际贸易相关网站网站建设的目标与思路
  • 小型网站建设费用云南网站建设企业推荐
  • 设备租赁业务网站如何做看板娘 wordpress
  • 上海网站设计工作室二手交易网站建设目标
  • 深圳智能响应网站建设平面设计基础教程
  • 网站建设 推广全流程案例分析网站
  • 企业建网站多少钱怎样做网站挣钱
  • 经营性质的网站asp.ne做网站
  • 天津都有哪些制作网站开网站挣不挣钱
  • 网站建设云技术公司推荐重庆网页设计培训
  • 做房产网站不备案可以吗北京爱空间装修公司
  • 手机网站是用什么开发的厦门公司网站制作流程
  • 网站是广西住房和城乡建设厅wordpress插件数据库存在哪
  • 网站图片如何做链接网站制作及管理教程
  • 企业建立企业网站有哪些优势?app下载排行榜
  • 广州天河网站建设gif在线制作
  • 建个大型网站要多少钱小程序开发公司简介