仿射变换+透视变换+欧式变换(刚体变换)+相似变换+剪切变换

仿射变换(引入齐次坐标)

齐次坐标:就是用n+1维来表示n维坐标。

一个2D笛卡尔坐标末尾加上一个额外的变量w来形成2D齐次坐标,即一个点(X,Y)在齐次坐标里面变成了(x,y,w),并且有X=x/w,  Y=y/w

为什么叫齐次坐标:(1, 2, 3), (2, 4, 6) 和(4, 8, 12)对应同一个Euclidean point (1/3, 2/3),任何标量的乘积,例如(1a, 2a, 3a) 对应 笛卡尔空间里面的(1/3, 2/3) 。因此,这些点是“齐次的”,因为他们代表了笛卡尔坐标系里面的同一个点。换句话说,齐次坐标有规模不变性。

齐次坐标的意义使用齐次坐标,可以表示 平行线在透视空间的无穷远处交于一点。在欧氏空间,这变得没有意义,所以欧式坐标不能表示。即:齐次坐标可以表示无穷远处的点。例如:如果点(1,2)移动到无限远处,在笛卡尔坐标下它变为(∞,∞),然后它的齐次坐标表示为(1,2,0),因为(1/0, 2/0) =(∞,∞),我们可以不用”∞"来表示一个无穷远处的点了。

许多图形应用涉及到几何变换,主要包括平移、旋转、缩放。以矩阵表达式来计算这些变换时,平移是矩阵相加,旋转和缩放则是矩阵相乘,综合起来可以表示为 x=R∗X+t(注:因为习惯的原因,实际使用时一般使用变化矩阵左乘向量)(R 旋转缩放矩阵,t 为平移矩阵,X为原向量,x 为变换后的向量)。

引入齐次坐标的目的主要是合并矩阵运算中的乘法和加法,表示为x=P∗X的形式。即它提供了用矩阵运算把二维、三维甚至高维空间中的一个点集从一个坐标系变换到另一个坐标系的有效方法。

仿射变换用途:旋转(线性变换),平移(向量加),缩放(线性变换),错切,反转

仿射变换可以通过一系列的原子变换的复合来实现,包括:平移(Translation)、缩放(Scale)、翻转(Flip)、旋转(Rotation)和剪切(Shear)。

仿射变换方法:保持了二维图像的平直性和平行性。即直线经过变换后还是直线,二维图形之间的相对位置关系保持不变,平行线依然是平行线,且直线上点的位置顺序不变。

仿射变换具体应用:在opencv中,仿射变换通过函数cvWrapAffine(src,dst,mat)实现,其中mat是2*3的仿射矩阵,该矩阵可以利用函数cvGetAffine Transform(srcTri,dstTri,mat)得到,其中mat是被该函数填充的仿射矩阵,srcTri和dstTri分别是有三个定点定义的平行四边形(平行四边形由三个顶点即可确定)

透视变换(投影变换)

用途:将2D矩阵图像变换成3D的空间显示效果,全景拼接

具体应用:在OpenCV中,透视变换通过函数cvWrapPerspective(src,dst,mat)实现, 与仿射变换不同的是,透视矩阵是一个3x3的矩阵,在计算矩阵时,可利用函数cvGetPerspectiveTransform(srcQuad,dstQuad,mat),由于不再是平行四边形,需要提供四边形的四个顶点

仿射变换和透视变换的区别:仿射变换后平行四边形的各边仍操持平行,透视变换结果允许是梯形等四边形,所以仿射变换是透视变换的子集

欧式变换或刚体变换:平移(translation)和旋转(rotation)两者组合称之为欧式变换(Euclidean tranformation)或刚体变换(rigid transformation)

相似变换:刚体变换+uniform scaling,即平移+旋转+各向同性的放缩。

剪切变换(shear mapping):将所有点沿着某一指定方向成比例的平移。

参考:

为什么要引入齐次坐标,齐次坐标的意义(一)_追求卓越583的博客-CSDN博客_齐次坐标

为什么要引入齐次坐标,齐次坐标的意义(二)_追求卓越583的博客-CSDN博客

仿射变换与透视变换区别_flyyufenfei的博客-CSDN博客_仿射变换和透视变换

仿射变换(Affine Transformation) - gjn159235 - 博客园

仿射变换及其变换矩阵的理解 - shine-lee - 博客园

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值