前言
本文主要实现在圆环中找裂缝,并标注裂缝的位置
一、原图
二、实现思路
- 先使用二值化取出圆环并切割出来
- 检测图像中的线条及其宽度,主要算子:lines_gauss
三、halcon代码实现,完整代码
read_image(Image, '2.jpg')
rgb1_to_gray(Image, GrayImage)
threshold (GrayImage, Regions, 0, 114)
*erosion_circle (Regions, RegionErosion, 3.5)
dilation_circle (Regions, RegionDilation, 3.5)
connection (RegionDilation, ConnectedRegions1)
select_shape (ConnectedRegions1, SelectedRegions, 'area', 'and', 10000, 99999)
reduce_domain(GrayImage, SelectedRegions, ImageReduced)
threshold(ImageReduced, Region, 0, 110)
connection(Region, ConnectedRegions)
sort_region(ConnectedRegions, SortedRegions, 'lower_right', 'false', 'row')
select_obj(SortedRegions,Region,1)
reduce_domain(ImageReduced, Region, ImageReduced)
mean_image(ImageReduced,ImageReduced,1,3)
*检测图像中的线条及其宽度
lines_gauss (ImageReduced, Lines, 0.5,8,12, 'dark', 'true', 'bar-shaped', 'true')
count_obj (Lines, Number)
*选择多种特征要求的XLD轮廓
select_contours_xld(Lines, Lines, 'contour_length', 10, 200, -1, -1)
dev_clear_window()
dev_display(GrayImage)
dev_set_line_width(3)
dev_display(Lines)
stop()
四、效果展示