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

概述

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

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

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

代码实现:

*窗口更新准备
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学习——杂质检测所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部