少有人走的路

勇哥的工业自动化技术网站

勇哥的实验,常见halcon图像过滤器的测试(二):bilateral_filter 双边滤波器

勇哥注:

图片过滤器是一切缺陷检测、边缘提取、图片分割前处理、分类器应用等等的基础。有很重要的研究意义。

因此勇哥会写成一个系列贴子以和大家一起分享。


-正文---------------------------------------------------------------------


双边滤波(Bilateral filter)是一种可以保边去噪的滤波器。其输出像素的值依赖于邻域像素的值的加权组合。

从效果来说,双边滤波可产生类似美肤的效果。皮肤上的皱纹和斑,与正常皮肤的差异,远小于黑白眼珠之间的差异,因此前者被平滑,而后者被保留。


image.png   

bilateral_filter(Image, Image, ImageBilateral, 5, 20, 'sampling_ratio', 0.5)

image.png


来看个缺陷检测的实际例子:


原图:

image.png


shock_filter过滤后的效果。

这个时候看取物料齿内仍然是有干扰的。

我们这个时候希望齿内外干扰尽可能去掉,并且不要把图像高频的部分去掉(好图像边缘)。

这个需求正好适用bilateral_filter

image.png


bilateral_filter过滤之后的效果,达到我们的需求。

image.png



测试源码:

read_image (Image, ImageFiles[14])
shock_filter(Image, SharpenedImage, 0.5, 10, 'canny', 0.8)//p2
        
bilateral_filter(SharpenedImage, SharpenedImage, ImageBilateral, 9, 20, [], [])


bilateral_filter  对图像执行双边滤波

算子签名如下:

bilateral_filter(Image, ImageJoint : ImageBilateral : SigmaSpatial, SigmaRange, GenParamName, GenParamValue : )


算子描述:

bilateral_filter使用引导图像ImageJoint对输入图像执行联合双边滤波,并将结果返回imagebitral。

Image和ImageJoint必须具有相同的大小和类型。


SigmaSpatial定义了滤波器掩模的大小,并与常规高斯滤波器的标准差相对应。值越大,过滤器的影响范围越大,保留的细节越少。

SigmaRange用于根据当前像素周围ImageJoint的像素修改过滤器掩码。

只有具有弱边缘且对比度低于SigmaRange的区域中的像素才有助于平滑。

请注意,uint2或Real图像中的对比度可能与SigmaRange的默认值显著不同,并相应地调整参数。

GenParamName和GenParamValue当前可用于控制精度和速度之间的权衡。


有关这个过滤器的详细解释,请参考下一篇:


勇哥的实验,常见halcon图像过滤器的测试(三):bilateral_filter双边滤波器详解 


--------------------- 

作者:hackpig
来源:
www.skcircle.com
版权声明:本文为博主原创文章,转载请附上博文链接!


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2026年2月    »
1
2345678
9101112131415
16171819202122
232425262728
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接

Powered By Z-BlogPHP 1.7.3

Copyright www.skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864