勇哥的实验,常见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
版权声明:本文为博主原创文章,转载请附上博文链接!


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

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

会员中心
搜索
«    2024年3月    »
123
45678910
11121314151617
18192021222324
25262728293031
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864