在找到模板之后,还需要对其进行转化,使之能够显示,这里用到两个函数vector_angle_to_rigid()和affine_trans_contour_xld()。前一个是从一个点和角度计算一个刚体仿射变换,这个函数从匹配函数的结果中对构造一个刚体仿射变换很有用,把参考图像变为当前图像
1.vector_angle_to_rigid
vector_angle_to_rigid()
——从点和角度计算刚性仿射变换。
函数原型:vector_angle_to_rigid( : : Row1
, Column1
, Angle1
, Row2
, Column2
, Angle2
: HomMat2D
)
描述:
vector_angle_to_rigid根据点对应关系和两个对应角度计算刚性仿射变换,即由旋转和平移组成的变换,并将其作为齐次变换矩阵HomMat2D返回。
参数:
Row1 (输入参数) ——原始点的行坐标
Column1 (输入参数) ——原始点的列坐标
Angle1 (输入参数) ——原始点的角度
Row2 (输入参数) ——转换点的行坐标
Column2 (输入参数) ——转换点的列坐标
Angle2 (输入参数) ——转换点的角度
HomMat2D (输出参数) ——输出转换矩阵
2.affine_trans_contour_xld
affine_trans_contour_xld
——对XLD轮廓进行任意仿射2D变换。
函数原型:affine_trans_contour_xld(Contours
: ContoursAffineTrans
: HomMat2D
: )
描述:
affine_trans_contour_xld将任意仿射2D变换,即缩放、旋转、平移和倾斜(倾斜)应用于轮廓中给定的xld轮廓,并以ContoursAffineTrans的形式返回变换后的轮廓。仿射变换由HomMat2D中给出的齐次变换矩阵来描述,它可以使用hom_mat2d_identity、hom_mat2d_scale、hom_mat2d_rotate、hom_mat2d_translate等运算符创建,也可以是向量_angle_to_rigid等运算符的结果。
齐次变换矩阵的组成部分解释如下:图像的行坐标对应于定义变换矩阵的坐标系的x,列坐标对应于定义变换矩阵的坐标系的y。这对于获得图像的右手坐标系是必要的。特别是,这样可以确保在正确的方向上执行旋转。注意,矩阵的(x,y)顺序与图像中坐标的通常(行、列)顺序相对应。
参数:
Contours (输入参数) ——输入XLD轮廓。
ContoursAffineTrans (输出参数) ——转换后的XLD轮廓
HomMat2D (输入参数) ——输入转换矩阵