Halcon形状匹配在图像仿射变换中的应用

仿射变换是空间直角坐标变换的一种,它是一种二维坐标到二维坐标之间的线性变换,保持二维图形的“平直线”和“平行性”,其可以通过一系列的原子变换的复合来实现,包括平移(Translation)、缩放(Scale)、翻转(Flip)、旋转(Rotation)和剪切(Shear)。

在机器视觉应用中,经常需要对图像进行仿射变换。

1、在基于参考的视觉检测中,由于待检图像与参考图像或多或少都会存在几何变化(平移、旋转、缩放等),所以在做比较之前一般都要对待检图像进行仿射变换以对齐图像。

2、要进行仿射变换,必须先获取变换矩阵,形状匹配是获取变换矩阵的一种高效的方法。

3、Halcon的如下几个函数是专门用于计算变换矩阵的:

vector_angle_to_rigid :Compute a rigid affine transformation from points and angles.

vector_to_rigid :Approximate a rigid affine transformation from point correspondences.

vector_to_similarity :Approximate an similarity transformation from point correspondences.

vector_to_hom_mat2d :Approximate an affine transformation from point correspondences.

4、Halcon中用于形状匹配的函数有:

find_shape_model :Find the best matches of a shape model in an image.

find_shape_models :Find the best matches of multiple shape models.

find_scaled_shape_model :Find the best matches of a scale invariant shape model in an image.

find_scaled_shape_models :Find the best matches of multiple scale invariant shape models.

5、单匹配计算刚性变换矩阵:vector_angle_to_rigid只需要一个点对及一个角度对即可计算刚性变换矩阵,所以可直接利用find_shape_model的结果,但精度可能稍低。

6、双匹配计算刚性变换矩阵:vector_to_rigid需要至少两个点对的支持,所以需要用两次find_shape_model或用一次find_shape_models,精度会比单匹配高,但仍局限于刚性变换。

7、双匹配计算相似变换矩阵:vector_to_similarity用于计算相似变换矩阵,需要至少两个点对的支持,所以需要用两次find_scaled_shape_model或用一次find_scaled_shape_models。

8、三匹配计算一般变换矩阵:vector_to_hom_mat2d用于计算一般的其次变换矩阵,需要至少三个点对的支持,所以需要用三次find_scaled_shape_model或用一次find_scaled_shape_models。

9、综上,在不同情况下,选用相应的变换矩阵类型、形状匹配方法,可以达到事半功倍的效果!

猜你喜欢

转载自blog.csdn.net/sbodakes/article/details/89637626