基本手法如下:
1、采集图像
2、预处理
3、分割
4、识别显示
1、采集图像
read_image (Image, ‘D:/**‘)
get_image_size (Image, Width, Height)
dev_open_window(0, 0, Width, Height, ‘black’, WindowHandle)
2、预处理
decompose3 (Image, Red, Green, Blue)
trans_from_rgb (Red, Green, Blue, Hue, Saturation, Intensity, ‘hsv’)
scale_image (Saturation, ImageScaled, 3.31169, -20)
3、分割
threshold (ImageScaled, Regions, 114, 255)
opening_circle(Regions, RegionOpening, 3.5)
erosion_circle(RegionOpening, RegionErosion, 28)
connection(RegionErosion, ConnectedRegions)
dilation_circle(ConnectedRegions, RegionDilation, 28)
4、显示
count_obj(RegionDilation, Number)
dev_display(Image)
dev_display(RegionDilation)
disp_message(WindowHandle, ‘数量为:’+Number, ‘window’, 12, 12, ‘black’, ‘true’)
处理结果为:
由于没有原图,勇哥直接用上面的结果图片试了一下,改几个参数,还是可以实现本文的效果的。
dev_close_window() read_image(Image, 'C:/Users/Administrator.PC8-20191007LRY/Desktop/202003021583120832601764.png') get_image_size(Image, Width, Height) dev_open_window(0, 0, Width, Height, 'black', WindowHandle) dev_set_draw('margin') decompose3(Image, Image1, Image2, Image3) trans_from_rgb(Image1, Image1, Image1, ImageResult1, ImageResult2, ImageResult3, 'hsv') scale_image(ImageResult3, ImageScaled, 1.31169, -20) threshold (ImageScaled, Regions1, 67, 175) opening_circle(Regions1, RegionOpening,3.5) erosion_circle(RegionOpening, RegionErosion,1) connection(RegionErosion, ConnectedRegions) dilation_circle(ConnectedRegions, RegionDilation, 8) count_obj(RegionDilation, Number) dev_display(Image) dev_display(RegionDilation) disp_message(WindowHandle, '数量为:'+Number, 'window', 12, 12, 'black', 'true')
---------------------
作者:hackpig
来源:www.skcircle.com
版权声明:本文为博主原创文章,转载请附上博文链接!

