*加载原图
read_image(img,'D:/000HALCON/测试图片/dotsimg/2')
*获取图像尺寸
get_image_size (img, Width, Height)
dev_open_window (0, 0, Width/5, Height/4, 'black', WindowHandle)
dev_display (img)
*均值滤波
mean_image (img, ImageMean, 11, 11)
*点状物增强运算
dots_image (ImageMean, DotImage,11, 'light', 0)
*灰度相乘拉伸
mult_image (DotImage, DotImage, ImageResult, 0.265, 0)
*固定阈值二值化
threshold (ImageResult, Regions, 1, 255)
*连通域分析
connection (Regions, ConnectedRegions)
*选择符合圆度标准的区域
select_shape (ConnectedRegions, SelectedRegions1, 'circularity', 'and', 0.6431, 0.9917)
*选择面积符合标准的区域
select_shape (SelectedRegions1, SelectedRegions2, 'area', 'and', 31.65, 500)
dev_clear_window()
dev_display (img)
dev_display (SelectedRegions2)
算子原型: dots_image(Image : DotImage : Diameter, FilterType, PixelShift : )
原理:使用直径为(Diameter)的点滤波核进行滤波得到,Diameter=5 的圆点滤波核如下:
可通过(FilterType)来决定是增强黑色的圆点还是白色的圆点或者所有的圆点。
此算子适合OCR里增强点状印刷字体