滤波器原理(双边滤波器原理解析)

  • A+
所属分类:知识

滤波器原理
一、定义
双边滤波(Bilateral filter)是一种可以保边去噪的滤波器。之所以可以达到此去噪效果,是因为滤波器是由两个函数构成。一个函数是由几何空间距离决定滤波器系数。另一个由像素差值决定滤波器系数。可以与其相比较的两个filter:高斯低通滤波器和α-截尾均值滤波器(去掉百分率为α的最小值和最大之后剩下像素的均值作为滤波器)。
双边滤波在对原图像进行滤波是引入了一个导向图来计算权重,例如对低分辨率图像进行去躁时将高分辨率图像作为导向图,导向图中的信息可以很好地弥补低分辨率图像中缺失的信息。
双边滤波器中,输出像素的值依赖于邻域像素的值的加权组合:
权重系数取决于定义域核:
和值域核
的乘积
同时考虑了空间域与值域的差别,而GaussianFilter和α均值滤波分别只考虑了空间域和值域差别。值域滤波器使用的是中心像素和邻域像素的矢量距离。
OpenCV代码如下:
1.  #include<iostream>  
2.  #include<opencv2opencv.hpp>  
3.    
4.  using namespace std;  
5.  using namespace cv;  
6.    
7.  int main()  
8.  {  
9.      Mat dst;  
10.      Mat input_img = imread("test.jpg");  
11.      namedWindow("Ori");  
12.      imshow("Ori", input_img);  
13.    
14.      int KERNEL_SIZE = 31;  
15.      for (int i = 1; i < KERNEL_SIZE; i = i + 2)  
16.      {  
17.          bilateralFilter(input_img, dst, i, i * 2, i / 2);  
18.      }  
19.      namedWindow("Bil");  
20.      imshow("Bil", dst);  
21.      waitKey(0);  
22.      return 0;  
23.  }  

滤波器原理相关文章

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: