我是靠谱客的博主 活力翅膀,这篇文章主要介绍机器视觉halcon学习——杂质检测,现在分享给大家,希望可以做个参考。

目标: 只用一套算子,找出多张图片中不同位置不同大小的杂质。
原图:
请添加图片描述
请添加图片描述
在这里插入图片描述

效果如下:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
分析:
1.观察每张图片杂质的特征,比如位置,大小的不同,跟周围区域颜色的对比等等。
2.根据位置特征,发现位置都是在大白圆里面,可以先缩小区域,避免外面黑色区域的干扰。
3.根据大小,可以用select_shape里面的面积来筛选。
4.根据颜色,灰度值区域可以进行分割。

代码实现:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
*窗口更新准备 dev_update_off() dev_update_on() dev_close_window() dev_open_window(0, 0, 800, 800, 'black', WindowHandle) *循环图片,目录是放图片的文件夹 list_files('D:裂片异物检测-检测出异常杂质',['files','follow_links'],ImageFiles) tuple_regexp_select(ImageFiles,'.*', ImageFiles) for imgIndex:=0 to |ImageFiles| -1 by 1 read_image(Image,ImageFiles[imgIndex]) *设置颜色 dev_set_color('red') *用线条的形式显示区域 dev_set_draw('margin') *裁剪出内部大圆 threshold(Image, Region1, 128, 255) fill_up(Region1, RegionFillUp) reduce_domain(Image, RegionFillUp, ImageReduced) *根据面积筛选区域 threshold(ImageReduced, Region2, 30,120) opening_circle(Region2, RegionOpening1, 0.5) connection(RegionOpening1, ConnectedRegions1) select_shape(ConnectedRegions1, SelectedRegions, 'area', 'and', 22, 1269) fill_up(SelectedRegions, RegionFillUp1) dev_set_color('green') dev_set_draw('fill') dev_display(RegionFillUp1) dev_set_line_width(1) set_display_font(WindowHandle, 16, 'mono', 'true', 'false') *提示信息 disp_message(WindowHandle, '绿色部分是杂质', 'window', 12, 12, 'black', 'true') stop() endfor

有疑问可以留言一起讨论噢,我也是学习阶段,有更好的方法也欢迎提出来呀~

最后

以上就是活力翅膀最近收集整理的关于机器视觉halcon学习——杂质检测的全部内容,更多相关机器视觉halcon学习——杂质检测内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部