Halcon XLD 生成提取&测量及特征筛选

6.1XLD 的生成和提取

XLD 的创建

生成圆轮廓gen_circle_contour_xld

算子:gen_circle_contour_xld( : ContCircle : Row, Column, Radius, StartPhi, EndPhi, PointOrder, Resolution : )

示例:gen_circle_contour_xld (ContCircle1, 500, 500, 150, 0, 6.28318, 'positive', 1)

ContCircle1(输出对象):输出生成的轮廓对象

500(输入控制参数1):圆的中心行坐标(默认)

500(输入控制参数2):圆的中心列坐标(默认)

150(输入控制参数3):圆的半径(默认)

0(输入控制参数4):圆的起点或圆弧[rad]的角度(默认)

6.28318(输入控制参数5):圆弧或圆弧[rad]的终点角度(默认)

'positive(输入控制参数6)':沿圆或圆弧的点顺序(默认)

1(输入控制参数7):相邻轮廓点之间的距离(默认)

 生成矩形轮廓gen_rectangle2_contour_xld

算子:gen_rectangle2_contour_xld( : Rectangle : Row, Column, Phi, Length1, Length2 : )

示例:gen_rectangle2_contour_xld (Rectangle6, 500, 500, 45, 100, 200)

Rectangle6(输出对象):输出轮廓对象

500(输入控制参数1):矩形中心行坐标

500(输入控制参数2):矩形中心列坐标

45(输入控制参数3):矩形主轴的角度

100(输入控制参数4):长度的一般

200(输入控制参数5):宽度的一般

生成箭头轮廓gen_arrow_contour_xld

算子:gen_arrow_contour_xld( : Arrow : Row1, Column1, Row2, Column2, HeadLength, HeadWidth : )

示例:gen_arrow_contour_xld (Arrow, 500, 500, 450, 450, 20, 20)

Arrow(输出对象):输出箭头轮廓

500(输入控制参数1):箭头尾部点的行坐标

500(输入控制参数2):箭头尾部点的列坐标

450(输入控制参数3):箭头头部点的行坐标

450(输入控制参数4):箭头头部点的列坐标

20(输入控制参数5):箭头尖角的长度

20(输入控制参数6):箭头箭帽的开合程度

生成十字叉轮廓gen_cross_contour_xld

算子:gen_cross_contour_xld( : Cross : Row, Col, Size, Angle : )

示例:gen_cross_contour_xld (Cross3, 500, 500, 90, 0)

Cross3(输出对象):输出数字坐标轮廓

500(输入控制参数1):十字坐标中心的行坐标

500(输入控制参数2):十字坐标中心的列坐标

90(输入控制参数3):十字型的大小

0(输入控制参数4):十字坐标相对于水平的角度

使用其他形式转换为轮廓

区域转轮廓gen_contour_region_xld

算子:gen_contour_region_xld(Regions : Contours : Mode : )

示例:gen_contour_region_xld (ROI_0, Contours1, 'border')

ROI_0(输入对象):输入区域

Contours1(输出对象):输出区域的轮廓

'border'(输入控制参数):轮廓生成模式(默认)

轮廓转区域gen_ region_contour_xld

算子:gen_region_contour_xld(Contour : Region : Mode : )

示例:gen_region_contour_xld (Contours1, Region7, 'filled')

Contours1(输入对象):输入轮廓对象

Region7(输出对象):输出轮廓转区域对象

'filled'(输入控制参数):区域生成模式默认)

将骨骼生成轮廓gen_contour_skeleton_xld

算子:gen_contours_skeleton_xld(Skeleton : Contours : Length, Mode : )

示例:gen_contours_skeleton_xld (Skeleton1, Contours2, 1, 'filter')

Skeleton1(输入对象):输入骨架对象

Contours2(输出对象):输出转为轮廓对象

1(输入控制参数1):输入提取的轮廓线包含的最小的点数

'filter'(输入控制参数2):输入过滤模式

使用边缘提取生成轮廓

阈值分割提取边缘 threshole_sub_pix

算子:threshold_sub_pix(Image : Border : Threshold : )

示例:threshold_sub_pix (Image15, Border, 128)

Image15(输入对象):输入灰度图像

Border(输出对象):输出提取边缘轮廓对象

128(输入控制参数):输入分界点的灰度值

基 于 亚 像 素 的 边 缘 提 取1 : edges_sub_pix

算子:edges_sub_pix(Image : Edges : Filter, Alpha, Low, High : )

示例:edges_sub_pix (Image15, Edges1, 'canny', 1, 20, 40)

Image15(输入对象):输入灰度图对象

Edges1(输出对象):输出提取后的轮廓对象

'canny'(输入控制参数1):滤波器(默认)

1(输入控制参数2):控制细节 值越大细节越少

20(输入控制参数3):控制轮廓的整体性 数值越大轮廓越散 不能大于参数4

40(输入控制参数4):控制轮廓的平整度数值越大筛选后的平整度越高

基 于 亚 像 素 的 边 缘 提 取2 :edges_color_sub_pix

算子:edges_color_sub_pix(Image : Edges : Filter, Alpha, Low, High : )

示例:edges_color_sub_pix (Image15, Edges2, 'canny', 1, 20, 40)

Image15(输入对象):输入灰度图像

Edges2(输出对象):输出提取的轮廓对象

'canny'(输入控制参数1):滤波器(默认)

1(输入控制参数2):控制细节 值越大细节越少

20(输入控制参数3):控制轮廓的整体性 数值越大轮廓越散 不能大于参数

40(输入控制参数4):控制轮廓的平整度数值越大筛选后的平整度越高

6.2XLD的特征值及筛选

特征直方图选取

单个测量或者选取(了解)

轮廓圆度:circularity_xld

算子:circularity_xld(XLD : : : Circularity)

示例:circularity_xld (Contours, Circularity)

Contours(输入对象):输入轮廓对象

Circularity(输出控制参数):输出轮廓的度数

轮廓长度:length_xld

算子:length_xld(XLD : : : Length)

示例:length_xld (Contours, Length)

Contours(输入对象):输入轮廓对象

Length(输出控制参数):输出轮廓的长度

轮廓重心中心及面积:area_center_xld

算子:area_center_xld(XLD : : : Area, Row, Column, PointOrder)

示例:area_center_xld (ContCircle, Area4, Row18, Column18, PointOrder2)

 ContCircle(输入对象):输入轮廓对象

Area4(输出控制参数1):输出轮廓面积

Row18(输出控制参数2):输出轮廓的行坐标

Column18(输出控制参数3):输出轮廓的列坐标

PointOrder2(输出控制参数4):沿边界的点顺序(默认)

测量轮廓:smallest_circle_xld,smallest_rectangle1_xld,smallest_rectangle2_xld.

示例:smallest_rectangle1_xld (ContCircle, Row19, Column19, Row26,Column26)

ContCircle(输人对象):输出轮廓对象

Row19(输出控制参数):输出轮廓左上角的行坐标

Column19(输出控制参数):输出轮廓左上角的列坐标

Row26(输出控制参数):输出轮廓右下角的行坐标

Column26(输出控制参数):输出轮廓右下角的行坐标

猜你喜欢

转载自blog.csdn.net/a296026640/article/details/130423653