仿射变换通过函数cvWrapAffine(src

发布时间:2019-11-26 来源:原创 浏览:

  仿射变换是一种二维坐标到二维坐标之间的线性变换,它连结了二维图形的“平曲性”(曲线颠末变换之后仍然曲直线)和“平行性”(二维图形之间的相对关系连结不变,平行线仍然是平行线,且曲线上点的挨次不变)。肆意的仿射变换都能暗示为乘以一个矩阵(线性变换),再加上一个向量 (平移) 的形式.

  正在OpenCV中,仿射变换通过函数cvWrapAffine(src,dst,mat)实现,此中mat是2x3的仿射矩阵,该矩阵能够操纵函数cvGetAffineTransform(srcTri,dstTri,mat)获得,此中mat是被该函数填充的仿射矩阵,srcTri和dstTri别离是由三个极点定义的平行四边形(因为是平行四边形,只需要指定三个极点即可确定),注册娱乐平台即:给出变换前的ABCD和变换后的A’B’C’D’

  透视变换是将图片投影到一个新的视平面,也称做投影映照.它是二维(x,y)到三维(X,Y,Z),再到另一个二维(x’,y’)空间的映照.相对于仿射变换,它供给了更大的矫捷性,将一个四边形区域映照到另一个四边形区域(不必然是平行四边形).它不止是线性变换.但也是通过矩阵乘法实现的,利用的是一个3x3的矩阵,矩阵的前两行取仿射矩阵不异(m11,m12,m13,m21,m22,m23),也实现了线性变换和平移,第三行用于实现透视变换.

  以上公式设变换之前的点是z值为1的点,它三维平面上的值是x,y,1,正在二维平面上的投影是x,y,通过矩阵变换成三维中的点X,Y,Z,再通过除以三维中Z轴的值,转换成二维中的点x’,y’.从以上公式可知,仿射变换是透视变换的一种特殊环境.它把二维转到三维,变换后,再转映照回之前的二维空间(而不是另一个二维空间).

  以上公式将点(x,y)映照到(x’,y’),正在OpenCV中通过指定一个2x3矩阵实现此功能(公式中的m矩阵,是线性变换和平移的组合,m11,m12,m21,m22为线为平移参数,其最初一行固定为0,0,1,因而,将3x3矩阵简化为2x3)

  仿射变换后平行四边形的各边仍筹划平行,透视变换成果答应是梯形等四边形,所以仿射变换是透视变换的子集


友情链接