简介
过滤是信号和图像处理中基本的任务。其目的是根据应用环境的不同,选择性的提取图像中某些认为是重要的信息。
过滤可以移除图像中的噪音、提取感兴趣的可视特征、允许图像重采样,等等。
当我们观察一张图片时,我们观察的是图像中有多少灰度级(或颜色)及其分布。根据灰度分布的不同来区分不同
的图像。
频率域分析,是将图像分成从低频到高频的不同部分。低频对应图像强度变化小的区域,而高频是图像强度变化非常
大的区域。比如图像中的灰度变化。
在频率分析领域的框架中,滤波器是一个用来增强图像中某个波段或频率并阻塞(或降低)其他频率波段的操作。
低通滤波器是消除图像中高频部分,但保留低频部分。
高通滤波器消除低频部分。
原理及用途
平滑 也叫 模糊,是一项简单且使用频率很高的图像处理方法。
平滑处理的用途有很多,它不仅仅减少噪声的功能。
平滑处理时需要用到一个 滤波器。最常用的滤波器是 线性滤波器,线性滤波处理的输出像素值(i.e.g(i,j))是输入
像素(i.e.f(i + k,j + l))的加权和:
h(k,l) 称为 核, 它仅仅是一个加权系数。把 滤波器 想象成一个包含加权系数的窗口,当使用这个滤波器平滑处理图像时,就把这个窗口滑过图像。
常用滤波器:
一: 归一化块滤波器 (Normalized Box Filter)
最简单的滤波器, 输出像素值是核窗口内像素值的 均值 ( 所有像素加权系数相等)
核如下:
二:高斯滤波器 (Gaussian Filter)
最有用的滤波器 (尽管不是最快的)。 高斯滤波是将输入数组的每一个像素点与 高斯内核 卷积将卷积和当作输出像素值。
还记得1维高斯函数的样子吗?
假设图像是1维的,那么观察上图,不难发现中间像素的加权系数是最大的, 周边像素的加权系数随着它们远离中间像素的距离增大而逐渐减小。
2维高斯函数可以表达为 :
其中 \mu 为均值 (峰值对应位置), \sigma 代表标准差 (变量 x 和 变量 y 各有一个均值,也各有一个标准差)
三: 中值滤波器 (Median Filter)
中值滤波将图像的每个像素用邻域 (以当前像素为中心的正方形区域)像素的 中值 代替 。
四:双边滤波 (Bilateral Filter)
目前我们了解的滤波器都是为了 平滑 图像, 问题是有些时候这些滤波器不仅仅削弱了噪声, 连带着把边缘也给磨掉了。
为避免这样的情形 (至少在一定程度上 ), 我们可以使用双边滤波。
类似于高斯滤波器,双边滤波器也给每一个邻域像素分配一个加权系数。 这些加权系数包含两个部分, 第一部分加权方式
与高斯滤波一样,第二部分的权重则取决于该邻域像素与当前像素的灰度差值。
详细参考: OpenCV 官方文档
本文参考和转载:
http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/imgproc/gausian_median_blur_bilateral_filter/gausian_median_blur_bilateral_filter.html#smoothing
http://blog.csdn.net/sunny2038/article/details/9155893