用OpenCV的函数bilateralFilter做双边滤波~
2017-10-30 15:02
441 查看
本文转载自 http://opencv66.net/thread-30-1-1.html
前几帖子提到的均值滤波、中值滤波和高斯滤波,都属于各向同性滤波,它们对待噪声和图像的边缘信息都采取一样的态度,结果,噪声被磨平的同时,图像中具有重要地位的边缘、纹理和细节也同时被抹平了,这是我们所不希望看到的。为了解决这个问题,人们陆续提出了一些算法来把图像边缘和噪声区别对待,比如双边滤波和导向滤波,本文介绍如何使用opencv做图像的双边滤波。
关于双边滤波的原理,大家可以参考网页:http://blog.163.com/yuyang_tech/blog/static/21605008320130242441886/
OpenCV提供了函数bilateralFilter来进行双边滤波,函数原型如下:
C++: void bilateralFilter(InputArray src, OutputArray dst, int d, double sigmaColor, double sigmaSpace, int borderType=BORDER_DEFAULT )
参数意义如下:
src:输入图像
dst:输出图像
d:滤波邻域直径。如果这个值设为负数,那么这个值由参数sigmaColor计算出。
sigmaColor:滤波的色彩空间参数。这个值越大,代表滤波计算邻域内有更多的色彩权重。
sigmaSpace :滤波的距离空间参数。这个值越大,代表当颜色距离相同时,会有更多的点被影响到。如果参数d>0,则邻域大小由d指定,否则,d是sigmaSpace的一个比例结果。
示例代码如下:
代码请访问原帖 http://opencv66.net/thread-30-1-1.html 查看
代码请访问原帖 http://opencv66.net/thread-30-1-1.html 查看
代码请访问原帖 http://opencv66.net/thread-30-1-1.html 查看
运行结果截图如下:
从运行结果截图来看,高斯滤波的效果是不如双边滤波,高斯滤波的效果大家可以参看帖子http://opencv66.net/thread-29-1-1.html
本文转载自 http://opencv66.net/thread-30-1-1.html
前几帖子提到的均值滤波、中值滤波和高斯滤波,都属于各向同性滤波,它们对待噪声和图像的边缘信息都采取一样的态度,结果,噪声被磨平的同时,图像中具有重要地位的边缘、纹理和细节也同时被抹平了,这是我们所不希望看到的。为了解决这个问题,人们陆续提出了一些算法来把图像边缘和噪声区别对待,比如双边滤波和导向滤波,本文介绍如何使用opencv做图像的双边滤波。
关于双边滤波的原理,大家可以参考网页:http://blog.163.com/yuyang_tech/blog/static/21605008320130242441886/
OpenCV提供了函数bilateralFilter来进行双边滤波,函数原型如下:
C++: void bilateralFilter(InputArray src, OutputArray dst, int d, double sigmaColor, double sigmaSpace, int borderType=BORDER_DEFAULT )
参数意义如下:
src:输入图像
dst:输出图像
d:滤波邻域直径。如果这个值设为负数,那么这个值由参数sigmaColor计算出。
sigmaColor:滤波的色彩空间参数。这个值越大,代表滤波计算邻域内有更多的色彩权重。
sigmaSpace :滤波的距离空间参数。这个值越大,代表当颜色距离相同时,会有更多的点被影响到。如果参数d>0,则邻域大小由d指定,否则,d是sigmaSpace的一个比例结果。
示例代码如下:
代码请访问原帖 http://opencv66.net/thread-30-1-1.html 查看
代码请访问原帖 http://opencv66.net/thread-30-1-1.html 查看
代码请访问原帖 http://opencv66.net/thread-30-1-1.html 查看
运行结果截图如下:
从运行结果截图来看,高斯滤波的效果是不如双边滤波,高斯滤波的效果大家可以参看帖子http://opencv66.net/thread-29-1-1.html
本文转载自 http://opencv66.net/thread-30-1-1.html
相关文章推荐
- opencv----滤波函数:方框滤波、均值滤波、高斯滤波、中值滤波、双边滤波
- 双边滤波Matlab实现<The Bilateral Filter>
- MATLAB函数的filter2 conv2 imfilter2函数 与opencv中的cvFilter2D函数的异同及图像的频率滤波
- 双边滤波CUDA优化——BilateralFilter CUDA
- 双边滤波CUDA优化——BilateralFilter CUDA
- 联合双边滤波器(joint bilateral filter) 代码及详细注释【OpenCV】
- 双边滤波(BilateralFilter)原理
- 双边滤波CUDA优化——BilateralFilter CUDA
- 联合双边滤波器(joint bilateral filter)【OpenCV】
- 【OpenCV】5种图像滤波辨析:方框、均值、高斯、中值、双边
- opencv学习(七)之图像卷积运算函数filter2D()
- opencv Gabor滤波函数
- python3 利用opencv 添加中值滤波,均值滤波,高斯滤波,高斯双边滤波
- opencv3_java 图像的方框滤波BoxFilter BoxFilter
- [学习opencv]高斯、中值、均值、双边滤波
- opencv实现导向滤波(GuidedFilter)
- 【OpenCV】邻域滤波:方框、高斯、中值、双边滤波
- 双边滤波(bilateral filtering)
- OpenCV之cvSmooth函数平滑滤波
- 滤波(opencv自写函数)