35.3、仿射变换---根据仿射变换矩阵进行仿射变换

对图像、ROI、XLD进行仿射变换

1、affine_trans_contour_xld(Contours : ContoursAffinTrans : HomMat2D : )

    功能:对XLD轮廓进行二维反射变换,支持缩放,旋转,平移,斜切

    Contours:输入原XLD

    ContoursAffinTrans:输出根据仿射变换矩阵变换后的XLD

    HomMat2D:输入仿射变换矩阵

2、affine_trans_image(Image : ImageAffinTrans : HomMat2D, Interpolation, AdaptImageSize : )

    功能:对图像轮廓进行二维仿射变换,支持缩放,旋转,平移,斜切

    Image:输入要进行变换的图像

    ImageAffinTrans:输出反射边防后的图像

    HomMat2D:输入仿射变换矩阵

    Interpolation:输入插值算法。参数列表:'nearest_neighbor', 'bilinear', 'constant', 'weighted'

                注:如果对精度要求高的建议选择'bilinear'

    AdaptImageSize:输入结果图像尺寸是否自适应。默认值为'false'

3affine_trans_pixel( : : HomMat2D, Row, Col : RowTrans, ColTrans)    

    功能:对像素进行任意二维仿射变换

    HomMat2D:输入仿射变换矩阵

    Row, Col:输入原坐标组

    RowTrans, ColTrans:输出变换后的坐标组

4、affine_trans_point_2d( : : HomMat2D, Px, Py : Qx, Qy)

    功能:对点进行任意二维变换,,支持缩放,旋转,平移,斜切

    HomMat2D:输入仿射变换矩阵

    Row, Col:输入原坐标组

    RowTrans, ColTrans:输出变换后的坐标组

    注:优先使用这个算子,而不是第3

    描述:affine_trans_pixel和affine_trans_point_2d的区别:前者使用的图像坐标系的原点在图像左上角,后者使用

         标准图像坐标系,原点在左上角像素的中心。下面2中方法等效

    (1)、affine_trans_pixel(HomMat2D, Row, Col ,RowTrans, ColTrans)    

    (2)、affine_trans_point_2d (HomMat2D, Row + 0.5, Col + 0.5 ,RowTmp, ColTmp)    

        RowTrans := RowTmp – 0.5

        ColTrans := ColTmp – 0.5

    建议:halcon的大部分算子都是行在前列在后,为了避免混淆,建议所有算子都按照这个规则

5、affine_trans_polygon_xld(Polygons : PolygonsAffinTrans : HomMat2D : )

    功能:对XLD多边形进行任意二维仿射变换

6、affine_trans_region(Region : RegionAffineTrans : HomMat2D, Interpolate : )

    功能:对区域进行任意的二维仿射变换

 

 

 

 

posted @ 2022-05-31 23:41  ihh2021  阅读(808)  评论(0)    收藏  举报