写在前面 在计算机视觉中,滤波 (filtering )是指
Image filtering : compute function of local neighborhood at each position.
—— from CAP5415–Fall 2014-Lecture 2 (08/21/2014)–Filtering
In the broadest sense of the term "filtering ", the value of the filtered image at a given location is a function of the values of the input image in a small neighborhood of the same location.
—— from Bilateral Filtering for Gray and Color Images
从滤波目的或者解决的问题上,也可分成3类:
图像处理 :并不想从图像中提取信息,只想将图像转换成期望的样子;特征提取 :想从图像中提取到某些信息,比如梯度、二阶导、纹理等;模式检测 :想知道图像局部长什么样子,像哪种模式,比如模板匹配、稀疏表示等;这两种分类方式并不是割裂的,而是互相交叉的,用于图像处理的滤波器也有线性、非线性、自适应之分。
Padding 滤波操作不可避免的一个问题是边界如何处理 ,当滤波器的中心压在图像边界处时,滤波器会有一部分落在图像外,但图像外并没有像素,该如何处理?通常需要对图像进行填充(padding ),填充需要解决2个问题,填充的元素取什么值以及填充多少个元素 。
对于延拓元素的取值,通常有4种方式,
常数填充 (0填充):填充的元素取相同的常数值周期填充 (circular):认为图像的上下左右被与自身相同的图像包围着复制填充 (replicate):复制图像边界的元素对称填充 (symmetric):填充的元素与图像关于边界对称4种填充方式依次如下图所示,
滤波杂谈 基本假设:局部相关性(远处无关)、局部相似(edge处不满足)、噪声随机 静止图像的去噪,若能获得图像序列,可以在时域上滤波(均值、中值等) ;单张图像在空域上滤波 。 椒盐噪声用中值滤波 。椒盐噪声会随机地将像素置为黑或白,在实践中,会大幅改变像素值的噪声一般采用中值滤波都是有效的。非椒盐噪声,均值为0的随机噪声(高斯噪声),可通过moving average 滤波。 与图像内容耦合的噪声,可能需要依赖先验知识,采用合适的自适应滤波器,更多内容可以查看参考链接。 平滑相当于低通、锐化相当于高通、不同平滑半径的差相当于带通 。 滤波的加速 可以考虑:滤波器是否行列可分离、缓存不必要的重复计算、近似计算、SIMD等。差分算子对噪声敏感,所以差分前通常要先平滑。 考虑到噪声 ,求梯度前通常要先(高斯)平滑再使用差分算子,sobel算子可以看成是DoG(Derivative of Gaussian)的近似 ,可以拆分成平滑和差分,如下所示,所以可以用sobel 求梯度。考虑到噪声 ,求二阶导前通常也要先(高斯)平滑再使用拉普拉斯算子,两者合在一起即LoG(Laplacian of Gaussian),即对高斯求二阶导再离散采样,通常可以用DoG(Difference of Gaussian) 即两个不同size高斯核的差近似,详见Laplacian/Laplacian of Gaussian ,其中Laplacian算子为模式检测 需要根据期望探测的模式来定义filter,因为不同场景需要检测的模式不同,所以filter也多种多样。反映模式的filter可以根据领域知识来人工定义、可以通过SOM(Self Organizing Map)无监督生成、也可以像CNN那样通过数据驱动有监督学习得到。比如,模板匹配中的模板为filter,相似度函数为滤波的计算方法;稀疏表示中字典的每一列都是filter,像gabor小波字典,通过相关运算计算与每个filter的相似程度,从而知道每个图像局部“长什么样子”。参考