“在上上期我们讲过了在图像亮度变换中经常使用的线性滤波器,这节我们就接着来讲讲用于图像亮度处理的非线性滤波器!”
基础知识
在Matlab中有一类应用非常广泛的非线性滤波器——统计排序滤波器。其原理可以通俗的理解为:将某一像素点邻域内的亮度值进行由大到小的排序,然后根据需要取序列中的某一位置的亮度值作为先前像素点的亮度值。
函数ordfilt2就是根据以上原理对图像进行滤波的。
该函数生成输出图像g的方式如下:使用邻域的一组排序元素中的第order个元素来替代f中的相应像素点的亮度值,而该邻域则由domain中的非零元素指定。这里,domain是一个由 0和1组成的大小为m x n的矩阵,该矩阵指定了将在计算中使用的邻域中的像素位置。在这种情况下,domain的作用类似于掩模。计算中不使用对应于矩阵domain中的0的邻域中的像素。例如,要实现大小为m x n的最小滤波器,可使用语法:
在该语句中,1表示mn个样本中的第-个样本, ones (m,n)创建了一个元素值为1、大小为mxn的矩阵,表明邻域内的所有样本都将用于计算。而在统计排序滤波器中最出名的则是