0012_仿射变换

仿射变换的简单说明:

对于2D范围内,仿射变换即为2D范围内的平移和旋转变换的结合。

对于2D范围内的仿射变换,使用的是一个3*3的齐次矩阵。

有两种常见的仿射变换方法,两种仿射变换的对比如下:

一种是对轮廓进行仿射变换(方法一)

一种是对具体的2D坐标进行仿射变换(方法二)

分别如下:

两种仿射变换的方法:

仿射变换 - 方法一

//从点和角度计算刚性仿射变换

vector_angle_to_rigid

Row1:原始点的行坐标

Column1:原始点的列坐标

Angle1:原始点的角度

Row2:变换后点的行坐标

Column2:变换后点的列坐标

Angle2:变换后点的角度

HomMat2D:输出变换矩阵

//对XLD轮廓进行2D的任意仿射变换

affine_trans_contour_xld

Contours:输入XLD轮廓

ContoursAffinTrans:变换后的XLD轮廓

HomMat2D:输入变换矩阵

仿射变换 - 方法2

//生成2D变换的齐次变换矩阵(单位矩阵)

hom_mat2d_identity

HomMat2DIdentity:输出单位矩阵

//添加旋转变量到变换矩阵

hom_mat2d_rotate

HomMatD:2D齐次矩阵

Phi:旋转角度

Px:X坐标

Py:Y坐标

HomMat2DRotate:输出加上旋转变换后的矩阵

//添加平移变量到变换矩阵

hom_mat2d_translate

HomMatD:2D齐次矩阵

Phi:旋转角度

Px:X坐标

Py:Y坐标

HomMat2DTranslate:输出加上平移变换后的矩阵

//对点进行2D的仿射变换。

affine_trans_point_2d

HomMat2D:变换矩阵

Px:输入点的行坐标

Py:输入点的列坐标

Qx:输出点的行坐标

Qy:输出点的列坐标

猜你喜欢

转载自blog.csdn.net/ymj7150697/article/details/82718472
今日推荐