6.5OpenCV双边滤波

来源:互联网 发布:平板淘宝怎么开店 编辑:程序博客网 时间:2024/06/18 13:07

基本原理:

  双边滤波器是针对高斯平滑的提升版本,高斯平滑根据像素邻域的距离决定权重,生成权重的函数为高斯函数,所以叫高斯平滑或者高斯滤波,效果是使图像模糊,并一定程度上的保存边缘,双边滤波的改进是增加了灰度值的影响,也就是邻域的像素灰度值如果和中心像素的灰度值越接近,那么权值在高斯权值的基础上在加上一个相对较大的权值,相反,如果灰度差很大,将会给已生成的高斯模板对应的位置加上一个小的权值,以此类推,并将模板系数归一化(和为1,其目的是完全平滑的图像结果不变),因此模板的系数不再单纯的依赖位置关系,更依赖于灰度关系,因此边缘将能够被有效的保存,但是这是一个相当耗时的操作。

OpenCV双边滤波:

#include "opencv2/core/core.hpp"#include"opencv2/highgui/highgui.hpp"#include"opencv2/imgproc/imgproc.hpp"#include <iostream>using namespace cv;void main(){// load image Mat image = imread("../03.jpg");if (!image.data){printf("读取图片文件失败\n");exit(0);}//resize(image, image, Size(), 0.3, 0.3);imshow("salted image", image);//median filteMat resutl;bilateralFilter(image, resutl, 45, 25 * 2, 25 / 2);//display resultimshow("median filted image", resutl);waitKey();}
原图:

滤波一次:

滤波两次:


原创粉丝点击