程序细节处理比较粗,楼主这4张图片还是可以检测的,不知道更多图片的通用性怎么样,细节做的更好一些,对内盘面上除去4个空白圆区域剩下的区域进行处理,可能通用效果会好很多
- read_image (Image1, 'F:/资料--机器视觉综合/脏污检测图片/51Halcon划痕检测2/1.bmp')
- threshold (Image1, Regions, 60, 160)
- connection (Regions, ConnectedRegions1)
- select_shape (ConnectedRegions1, SelectedRegions, 'outer_radius', 'and', 195, 210)
- fill_up_shape (SelectedRegions, RegionFillUp, 'area', 1, 100)
- opening_circle (RegionFillUp, RegionOpening, 5.5)
- closing_circle (RegionOpening, RegionClosing, 6.5)
- erosion_circle (RegionClosing, RegionErosion, 7.5)
- change_domain (Image1, RegionErosion, ImageNew)
- gray_dilation_rect (ImageNew, ImageMax, 5, 5)
- gray_erosion_rect (ImageMax, ImageMin, 3, 3)
- median_image (ImageMin, ImageMedian, 'circle', 3.5, 'mirrored')
- gray_opening_rect (ImageNew, ImageOpening, 11, 11)
- dyn_threshold (ImageMin, ImageOpening, RegionDynThresh, 90, 'light')
- connection (RegionDynThresh, ConnectedRegions)
- select_shape (ConnectedRegions, SelectedRegions1, 'area', 'and', 300, 99999)
复制代码
|