滤波算法介绍及OpenCV中使用

滤波

目录

  • 滤波
    • 目录
    • 理论介绍
      • 判断
      • 高斯滤波
      • 中值滤波
      • 均值滤波
      • 双边滤波
      • 各向异性扩散
    • opencv函数
      • MAT类型

理论介绍

1. 判断

如何判断噪声是什么,分布如何?该采用什么方法?
高斯噪声
脉冲噪声(椒盐噪声)
分布?进行参数估计

2. 高斯滤波

高斯滤波器是一类根据高斯函数的形状来选择权值的线性平滑滤波器。
它对去除服从正态分布的噪声很有效。

3. 中值滤波

中值滤波是一种典型的低通滤波器,主要目的是在去除噪声的同时能够保护图像边缘。(为什么?)
传统的中值滤波一般采用含有奇数个点的滑动窗口,用窗口中各点灰度值的中值来替代指定点的灰度值。
对于奇数个元素,中值为大小排序后中间的数值;
对于偶数个元素,中值为排序后中间两个元素灰度值的平均值。

4. 均值滤波

使用模板里面所有像素的平均值来代替操作点的像素值。

5. 双边滤波

双边滤波(Bilateral filter)是一种可以保边去噪的滤波器。之所以可以达到此去噪效果,是因为滤波器是由两个函数构成。一个函数是由几何空间距离决定滤波器系数。另一个由像素差值决定滤波器系数。
可以与其相比较的两个filter:高斯低通滤波器(http://en.wikipedia.org/wiki/Gaussian_filter)和α-截尾均值滤波器(去掉百分率为α的最小值和最大之后剩下像素的均值作为滤波器)。
双边滤波同时考虑了空间域与值域的差别,而Gaussian Filter和α均值滤波分别只考虑了空间域和值域差别。

6. 各向异性扩散

与双边滤波相似
弥补了高斯滤波的缺点,在平滑的同时能够保留边缘。(为什么?)比作热力场,根据当前操作像素与周围像素的关系来确定是否要向周围扩散。如果该邻域像素与周围像素差别较大则该像素点可能为边缘点,则停止向这个方向扩散,边缘得以保留。
四个方向上的导热系数变化越大,求得的值越小,从而达到保留边界的目的
变化越多 是边界的可能性越大 越要保留
相关链接:http://www.cnblogs.com/tiandsp/archive/2013/04/18/3029468.html

opencv函数

MAT类型


高斯滤波:
//高斯滤波
//src:输入图像
//dst:输出图像
//Size(5,5)模板大小,为奇数
//x方向方差
//Y方向方差
GaussianBlur(src,dst,Size(5,5),0,0);


中值滤波:
//中值滤波
//src:输入图像
//dst::输出图像
//模板宽度,为奇数
medianBlur(src,dst,3);


均值滤波:
//均值滤波
//src:输入图像
//dst:输出图像
//模板大小
//Point(-1,-1):被平滑点位置,为负值取核中心
blur(src,dst,Size(3,3),Point(-1,-1));


双边滤波:
//双边滤波
//src:输入图像
//dst:输入图像
//滤波模板半径
//颜色空间标准差
//坐标空间标准差
bilateralFilter(src,dst,5,10.0,2.0);

你可能感兴趣的:(opencv)