halcon 返回XLD轮廓全局属性值 get_contour_global_attrib_xld

一、算子详解:get_contour_global_attrib_xld提供的属性值如下:

‘regr_norm_row’, ‘regr_norm_col’, ‘regr_mean_dist’, ‘regr_dev_dist’, ‘cont_approx’, ‘bright_dark’, ‘is_hole’

1、‘regr_norm_row’

回归线单位法向量的行坐标,法向量从原点指向该线。可见算子regress_contours_xld,计算回归线到XLD轮廓的参数。

2、 ‘regr_norm_col’

回归线单位法向量的列坐标,法向量从原点指向该线。可见算子regress_contours_xld,计算回归线到XLD轮廓的参数。

3、‘regr_mean_dist’

包含每个等高线点到回归线之间的欧式距离的平均值。可见算子regress_contours_xld,计算回归线到XLD轮廓的参数。

4、‘regr_dev_dist’

轮廓线点与回归线之间(欧几里得)距离的标准差。可见算子regress_contours_xld,计算回归线到XLD轮廓的参数。

5、‘cont_approx’

  • 如果’cont_approx’=-1,这一部分轮廓最适合被拟合为直线段。
    • 如果’cont_approx’=0,这一部分轮廓最适合被拟合为椭圆弧。
    • 如果’cont_approx’=1,这一部分轮廓最适合被拟合为圆弧。

可见算子regress_contours_xld,计算回归线到XLD轮廓的参数。

6、‘bright_dark’

可见算子connect_grid_points,建立整流网各网格点之间的连接。还有历程
grid_rectification.hdev

每个输出XLD轮廓的转换类型存储在属性“bright_dark”中。如果连接线形成明暗转换(从左到右,从起点到终点),则将其设置为1.0,否则将其设置为0.0。
halcon 返回XLD轮廓全局属性值 get_contour_global_attrib_xld_第1张图片
示例性XLD轮廓(红色和绿色)沿着整流网格的边缘(从起点到终点的方向由箭头指示)。转换类型存储在属性“bright_dark”中,红色轮廓为1.0,绿色轮廓为0.0。

7、‘is_hole’

判断是否是包含孔的边界,'is_hole’设置为1,是包含孔的边界;否则设置为0。
二、案例
我们最常用的属性
‘cont_approx’

  • 如果’cont_approx’=-1,这一部分轮廓最适合被拟合为直线段。
  • 如果’cont_approx’=0,这一部分轮廓最适合被拟合为椭圆弧。
  • 如果’cont_approx’=1,这一部分轮廓最适合被拟合为圆弧。
read_image (Image, 'double_circle')
dev_close_window ()
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
threshold_sub_pix (Image, Edges, 128)
segment_contours_xld (Edges, ContoursSplit, 'lines_circles', 5, 4, 3)
count_obj (ContoursSplit, Number)
dev_display (Image)
dev_set_draw ('margin')
dev_set_color ('red')
dev_update_window ('off')
for i := 1 to Number by 1
    select_obj (ContoursSplit, ObjectSelected, i)
    get_contour_global_attrib_xld (ObjectSelected, 'cont_approx', Attrib)
    if (Attrib > 0)
        fit_circle_contour_xld (ObjectSelected, 'ahuber', -1, 2, 0, 3, 2, Row, Column, Radius, StartPhi, EndPhi, PointOrder)
        gen_ellipse_contour_xld (ContEllipse, Row, Column, 0, Radius, Radius, 0, 4 * acos(0), 'positive', 1.0)
        dev_display (ContEllipse)
    endif
endfor

原图
halcon 返回XLD轮廓全局属性值 get_contour_global_attrib_xld_第2张图片
结果图
halcon 返回XLD轮廓全局属性值 get_contour_global_attrib_xld_第3张图片

你可能感兴趣的:(人工智能,算法,c++,图像处理)