Halcon 最大内接圆检测

一、前言

        项目需求,检测目标产品的内接圆尺寸是否合规。

        

二、Halcon代码

* 输入图像
read_image (Image1, 'C:/Users/Admin/Desktop/InnerCircle/1')

get_image_size (Image1, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width*0.25, Height*0.25, 'black', WindowHandle)
dev_display (Image1)

* decompose3(Image1,ImageR,ImageG,ImageB)

* 提取目标区域
threshold(Image1, Region, 150, 255)
*binary_threshold (Image1, Region, 'max_separability', 'light', UsedThreshold)
fill_up (Region, RegionFillUp)
*opening_circle(RegionFillUp,RegionOpening, 3.5)
connection (RegionFillUp, ConnectedRegions)
select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 80)

* 内接圆变换
inner_circle (SelectedRegions, Row, Column, Radius)
gen_circle_contour_xld (ContCircle, Row, Column, Radius, 0, 6.28318, 'positive', 1)

* 结果显示
dev_display (Image1)
dev_set_color ('red')
dev_set_line_width (3)
dev_display (ContCircle)
disp_cross (WindowHandle, Row, Column, 50, 0)
write_string (WindowHandle, 'MaxDistance='+Radius*13*2/1000)

 三、工具设计

四、结果展示