Halcon机器视觉15种缺陷检测案例_2不均匀表面刮伤检测

2: 不均匀表面刮伤检测

思路

        1、获取图像

        2、分割图像

        3、处理区域 

        4、获取大,小缺陷

效果

原图

代码

*02 不均匀表面刮伤检测
dev_update_off ()
dev_close_window ()

*****************第一步 获取图像*******************
read_image (Image, '2.不均匀表面刮伤检测')
get_image_size (Image, Width, Height)
*打开图像窗口
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
*设置区域的填充方式
dev_set_draw ('margin')
*设置线的宽度
dev_set_line_width (4)
*显示图像
dev_display (Image)

**************第二步 分割图像**************
*均值滤波,滤波核大小为7*7(重点)
mean_image (Image, ImageMean, 30, 30)
*局部阈值进行分割(重点)
dyn_threshold (Image, ImageMean, DarkPixels, 5, 'dark')
*连通
connection (DarkPixels, ConnectedRegions)
*设置输出对象的显示色的数目
dev_set_colored (12)
dev_display(Image)
dev_display(ConnectedRegions)

**************第三步 处理区域**************
*根据面积选择区域
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 50, 99999)
dev_display(Image)
dev_display(SelectedRegions)
*将选择区域合并
union1 (SelectedRegions, RegionUnion)
*对合并区域进行膨胀处理,其结构元素为圆形,半径3.5
dilation_circle (RegionUnion, RegionDilation, 3.5)
dev_display(Image)
dev_display(RegionDilation)
*对膨胀后的区域进行求骨架
skeleton (RegionDilation, Skeleton)
*对获取的骨架区域进行连通处理
connection (Skeleton, Errors)
*设置输出对象的显示色的数目
dev_set_colored (12)
dev_display(Image)
dev_display(Errors)

**************第四步 获取大,小缺陷******************************************
*过滤出大缺陷
select_shape (Errors, ScratChes, 'area', 'and', 100, 99999)
*过滤出小缺陷
select_shape (Errors, Dots, 'area', 'and', 1, 99)
dev_display(Image)
dev_set_color('red')
dev_display(ScratChes)
dev_set_color('blue')
dev_display(Dots)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

StevenChen85

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值