图像瑕疵检测 c语言,视觉检测之产品瑕疵检测(1)污点检测

这篇博客介绍了如何利用动态阈值算子dynt_threshold进行图像处理,特别是在胶囊表面污点检测中的应用。通过中值滤波预处理,动态阈值能够自动适应图像中不同亮度区域,有效地识别亮点和暗点。文章还提供了代码示例,展示了如何筛选出特定面积范围的连接区域,以区分亮点和暗点。此外,讨论了动态阈值相比于固定阈值的优势,适合处理阈值分布不一的图像。
摘要由CSDN通过智能技术生成

先来张素材图

bd6a31451e383512f93f39a9e80f3787.png

read_image (Image, 'C:/Users/Administrator/Desktop/划痕+油污+瑕疵的检测/划痕、油污、瑕疵/胶囊表面污点检测/Image.bmp')

rgb1_to_gray(Image,GrayImage)

scale_image_max(GrayImage,ImageScaleMax)

mean_image(ImageScaleMax,ImageMean,9,9)

*找到亮点

dyn_threshold(ImageScaleMax,ImageMean,RegionDynThresh,5,'light' )

connection(RegionDynThresh,ConnectedRegions)

dev_clear_window()

dev_display(Image)

select_shape (ConnectedRegions,SelectedRegions,'area','and',20,25)

stop()

*找到暗点

mean_image(ImageScaleMax,ImageMean,7,7)

dyn_threshold(ImageScaleMax,ImageMean,RegionDynThresh1,5,'dark' )

connection(RegionDynThresh1,ConnectedRegions1)

dev_clear_window()

dev_display(Image)

select_shape (ConnectedRegions1,SelectedRegions1,'area','and',13,15)

stop()

dyn_threshold是动态阈值算子,动态阈值和threshold不同的是其最大阈值与最小阈值不需要指定,而是由算子根据情况自动推算出来的。因为可以处理一张图片中有多种阈值分布的情况。

dyn_threshold算子一般要前置滤波算子,如本例中使用中值滤波mean_image。

dyn_threshold的原型如下,其最一个参数LightDark可以决定是选择亮部还是暗部。

dyn_threshold(OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark : )

有关动态阈值可以参考下面的贴子:

0be60cc4ac9567dac076a164c9dca8d3.png

#转载请注明出处 www.skcircle.com 《少有人走的路》勇哥的工业自动化技术网站。如果需要本贴图片源码等资源,请向勇哥索取。

收藏 | 0点赞 | 0打赏作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值