Halcon 通用流程

------------------------------------------------------------------

【第1步】初始化 + 读图

dev_close_window ()

read_image (Image, '图片路径')

get_image_size (Image, Width, Height)

dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)

dev_display (Image)

-------------------------------------------------------------------

【第2步】预处理(转灰度+去噪)

rgb1_to_gray (Image, GrayImage)    * 彩色转灰度

median_image (GrayImage, ImageMedian, 'circle', 3, 'mirrored')    * 去噪

--------------------------------------------------------------------

【第3步】二值化(把目标抠出来)

binary_threshold (ImageMedian, Region, 'max_separability', 'dark', UsedThreshold)

--------------------------------------------------------------------

【第4步】拆成一个个目标

connection (Region, ConnectedRegions)

--------------------------------------------------------------------

【第5步】筛选目标

select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 100, 99999)

--------------------------------------------------------------------

【第6步】修图(修修补补,填洞去毛刺)

closing_circle (SelectedRegions, RegionClosing, 3.5)   * 填洞

fill_up (RegionClosing, RegionFinal)   * 彻底实心

---------------------------------------------------------------------

【第7步】测距(找圆,算面积)

distance_pp (Row1,Col1, Row2,Col2, Distance)       *测两点

measure_pairs (Image, MeasureHandle, 1, 20, 'all', 'all', RowEdge, ColEdge, Amp, Distance)       *测两边

distance_pl (Row,Col, Row1,Col1,Row2,Col2, Distance)   *测点到直线

smallest_circle (RegionFinal, Row, Column, Radius)     *测圆直径

----------------------------------------------------------------------

【第8步】标记(画圆,写字儿)

dev_display (Image)

dev_set_color ('green')

disp_circle (WindowHandle, Row, Column, Radius)  *标记green圆圈

set_display_font (WindowHandle, 24, 'mono', 'true', 'false')

disp_message (WindowHandle, '直径:' + Diameter, 'image', 30, 30, 'red', 'true')  *标记red文字

==================================================================================

cs7

计算出图中两个残缺圆的圆心距:

image

 

posted @ 2026-03-10 09:07  超级驼鹿  阅读(44)  评论(0)    收藏  举报
/*