halcon算子学习

1. gen_contour_polygon_xld( : Contour : Row, Col : )

功能:根据一个多边形(polygon)(以元组形式给出)创建一个XLD轮廓(contour)。
(输出)contour:输出创建的XLD轮廓;
(输入)Row:输入的行数组;
(输入)Col:输入的列数组;

例:gen_contour_polygon_xld( Contour, [10,15,10,10], [10,15,15,10] )
生成一个三角形轮廓
halcon算子学习

2.erosion_rectangle1(Region : RegionErosion : Width, Height : )
功能:腐蚀一个矩形结构基础的一个区域。
(输入)Region :输入区域对象;
(输出)RegionErosion :输出区域对象;
(输入)Width (input_control) :矩形宽度;
(输入)Height (input_control) :矩形高度;

例:erosion_rectangle1 (RegionFillUp, RegionErosion, 20, 20)
* 腐蚀一个矩形结构基础的一个区域。在ROI的长宽下,往内部腐蚀宽度20,高度20,得到RegionErosion
halcon算子学习
halcon算子学习

3.set_origin_pose( : : PoseIn, DX, DY, DZ : PoseNewOrigin)
平移POSEIN的原点,输出为新的原点。注意,平移沿着OBJ的坐标新进行,而非沿着摄像机的坐标系进行。

(输入)PoseIn:原点位姿[X,Y,Z,U,V,W,0]
(输入)DX:平移X轴距离
(输入)DY:平移Y轴距离
(输出)DZ:平移Z轴距离
PoseNewOrigin:新的原点位姿[X’,Y’,Z’,U,V,W,0]

halcon算子学习
按halcon手册介绍,set_origin_pose就是将PoseIn位姿先转换成3X4矩阵HomMat3DIn,然后再和平移矩阵相乘得到HomMat3DNewOrigin,最后再转换成新的位姿PoseNewOrigin。

例:
pos:=[1.0,2.0,3.0,4.0,5.0,6.0,0]
set_origin_pose(pos, 0, 0, 1, PoseNewOrigin)
pose_to_hom_mat3d(pos,HomMat3D)
hom_mat3d_translate_local(HomMat3D, 0, 0, 1, HomMat3DTranslate)
hom_mat3d_to_pose(HomMat3DTranslate, Pose)
最后PoseNewOrigin和Pose得出来的值一样
halcon算子学习

注:旋转姿态UVW是按欧拉角XYZ形式转换的
halcon算子学习