一、算子详解: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’
可见算子regress_contours_xld,计算回归线到XLD轮廓的参数。
6、‘bright_dark’
可见算子connect_grid_points,建立整流网各网格点之间的连接。还有历程
grid_rectification.hdev
每个输出XLD轮廓的转换类型存储在属性“bright_dark”中。如果连接线形成明暗转换(从左到右,从起点到终点),则将其设置为1.0,否则将其设置为0.0。
示例性XLD轮廓(红色和绿色)沿着整流网格的边缘(从起点到终点的方向由箭头指示)。转换类型存储在属性“bright_dark”中,红色轮廓为1.0,绿色轮廓为0.0。
7、‘is_hole’
判断是否是包含孔的边界,'is_hole’设置为1,是包含孔的边界;否则设置为0。
二、案例
我们最常用的属性
‘cont_approx’
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