空间滤波概念
- 滤波:通过修改或者抑制给定图像的特定频率分量,常见有低通滤波器与高通滤波器。
 - 空间滤波:将像素值使用该像素值及其邻域的值进行替换,替换方式有线性与非线性两种,即线性滤波器与非线性滤波器。
 
线性滤波器
一般方式为是使用一个矩阵(也成为核)与图像进行类似卷积运算,做乘积。
 矩阵内部的数值决定了滤波器的功能。
(下图来自数字图像处理 第4版=DIGITAL IMAGE PROCESSING,FOURTH EDITION)
可分离滤波器核
将二维矩阵分解为两个一维向量的乘积。
 
    
     
      
       
        G
       
       
        (
       
       
        X
       
       
        ,
       
       
        Y
       
       
        )
       
       
        =
       
       
        
         G
        
        
         1
        
       
       
        (
       
       
        X
       
       
        )
       
       
        
         G
        
        
         2
        
       
       
        (
       
       
        Y
       
       
        )
       
      
      
       G(X,Y)=G_1(X)G_2(Y)
      
     
    G(X,Y)=G1(X)G2(Y)
 如
 
     
      
       
        
         w
        
        
         =
        
        
         
          
          
           
            
             
              [
             
             
              
               
                
                 
                  1
                 
                
               
               
                
                 
                  1
                 
                
               
               
                
                 
                  1
                 
                
               
              
              
               
                
                 
                  1
                 
                
               
               
                
                 
                  1
                 
                
               
               
                
                 
                  1
                 
                
               
              
              
               
                
                 
                  1
                 
                
               
               
                
                 
                  1
                 
                
               
               
                
                 
                  1
                 
                
               
              
             
             
              ]
             
            
           
          
          
          
         
        
       
       
         w=\begin{equation} \left[\begin{array}{ccc} 1 & 1 & 1 \\ 1 & 1 & 1 \\ 1 & 1 & 1 \end{array} \right] \end{equation} 
       
      
     w=
                     111111111
                     
 可表示为
 
     
      
       
        
         
          w
         
         
          1
         
        
        
         =
        
        
         
          
          
           
            
             
              [
             
             
              
               
                
                 
                  1
                 
                
               
              
              
               
                
                 
                  1
                 
                
               
              
              
               
                
                 
                  1
                 
                
               
              
             
             
              ]
             
            
           
          
          
          
         
        
        
        
         
          w
         
         
          2
         
        
        
         =
        
        
         
          
          
           
            
             
              [
             
             
              
               
                
                 
                  1
                 
                
               
               
                
                 
                  1
                 
                
               
               
                
                 
                  1
                 
                
               
              
             
             
              ]
             
            
           
          
          
          
         
        
       
       
         w_1=\begin{equation} \left[\begin{array}{ccc} 1 \\ 1 \\ 1 \end{array} \right] \end{equation} \hspace{1.5cm} w_2=\begin{equation} \left[\begin{array}{ccc} 1 & 1 & 1\\ \end{array} \right] \end{equation} 
       
      
     w1=
                     111
                     w2=[111]
 两者乘积。
PS:判断一个核是否是可分离卷积核,即判断该卷积核是否是秩为1.若为1,即可分离,否则不可。
卷积可分离的好处:
 假设图像大小为
    
     
      
       
        M
       
       
        ∗
       
       
        N
       
      
      
       M*N
      
     
    M∗N,卷积核大小为
    
     
      
       
        m
       
       
        ∗
       
       
        n
       
      
      
       m*n
      
     
    m∗n,直接做卷积的运算量包括
    
     
      
       
        M
       
       
        N
       
       
        m
       
       
        n
       
      
      
       MNmn
      
     
    MNmn次乘法和
    
     
      
       
        M
       
       
        N
       
       
        m
       
       
        n
       
      
      
       MNmn
      
     
    MNmn次加法。若使用可分离卷积,将
    
     
      
       
        w
       
      
      
       w
      
     
    w分为
    
     
      
       
        
         w
        
        
         1
        
       
       
        ∗
       
       
        
         w
        
        
         2
        
       
      
      
       w_1*w_2
      
     
    w1∗w2,并且
    
     
      
       
        
         w
        
        
         1
        
       
      
      
       w_1
      
     
    w1为
    
     
      
       
        m
       
       
        ∗
       
       
        1
       
      
      
       m*1
      
     
    m∗1,
    
     
      
       
        
         w
        
        
         2
        
       
      
      
       w_2
      
     
    w2为
    
     
      
       
        1
       
       
        ∗
       
       
        n
       
      
      
       1*n
      
     
    1∗n,将图像矩阵与
    
     
      
       
        
         w
        
        
         1
        
       
      
      
       w_1
      
     
    w1和
    
     
      
       
        
         w
        
        
         2
        
       
      
      
       w_2
      
     
    w2分别做卷积得到运算量为
    
     
      
       
        M
       
       
        N
       
       
        m
       
       
        +
       
       
        M
       
       
        N
       
       
        n
       
      
      
       MNm+MNn
      
     
    MNm+MNn,即
    
     
      
       
        M
       
       
        N
       
       
        (
       
       
        m
       
       
        +
       
       
        n
       
       
        )
       
      
      
       MN(m+n)
      
     
    MN(m+n)。相比于之前的
    
     
      
       
        M
       
       
        N
       
       
        m
       
       
        n
       
      
      
       MNmn
      
     
    MNmn,大大减少了运算量。
可分离向量的确定:
 根据矩阵的性质可知,秩为1的矩阵,每行之间只差常数倍,每列之间也只差常数倍,那么我们可以任意找一个行与列进行求解,当然需要保证该行与列都非零向量。
滤波器类型
线性滤波器
-  
低通空间滤波器
\hspace{0.5cm} 主要作用于变化缓慢的区域,如光滑地面等;桌子边缘等为高频区域。
1.1 盒式滤波器核
\hspace{0.5cm} 该滤波器核的数值均为1,可使图片产生平滑效果。
1.2 低通高斯滤波器核
\hspace{0.5cm} 高斯核 w ( s , t ) = G ( s , t ) = K e − s 2 + t 2 2 σ 2 w(s,t) = G(s,t)=Ke^{-\frac{s^2+t^2}{2\sigma^2}} w(s,t)=G(s,t)=Ke−2σ2s2+t2
\hspace{0.5cm} 其中 s s s与 t t t为到坐标(以核心为原点), ( s 2 + t 2 ) 1 2 (s^2+t^2)^{\frac{1}{2}} (s2+t2)21为到原心的距离。

特别地,高斯核也是可分离的。 -  
高通滤波器
\hspace{0.5cm} 通过边缘增强等方式作用于图像。 
非线性滤波器
- 中值滤波
\hspace{0.3cm} 将某像素及其邻域内的像素进行排序,中心像素的值由邻域内的像素排序的中间值确定,尤其对椒盐噪声有消除作用。 - 最大值滤波器和最小值滤波器
\hspace{0.3cm} 最大值滤波器:将某像素及其邻域内的像素进行排序,中心像素的值由邻域内的像素排序最大值确定。
\hspace{0.3cm} 最小值滤波器:将某像素及其邻域内的像素进行排序,中心像素的值由邻域内的像素排序最大值确定。 - 中点滤波器
\hspace{0.3cm} 将某像素及其邻域内的像素进行排序,中心像素值由最大值与最小值的平均值确定,适用于处理随机分布的噪声,如高斯噪声或者均匀噪声。 - 修正
     
      
       
        
         A
        
        
         l
        
        
         p
        
        
         h
        
        
         a
        
       
       
        Alpha
       
      
     Alpha均值滤波器
\hspace{0.3cm} 对中值滤波器的改进,将某像素及其邻域内的像素删除部分最低灰度值与最高灰度值,剩下的像素值进行计算算术平均值,作为中心像素值,适用于处理混合噪声,如椒盐噪声与高斯噪声的混合。 
自适应滤波器
自适应重在考虑图像的不同特征点变化。
- 自适应局部降噪滤波器
\hspace{0.3cm} 该滤波器需要考虑的参数涉及带有噪声的图像像素值与噪声方差;滤波器中局部像素均值与局部方差。
带有噪声的图像像素值为 f ( x , y ) f(x,y) f(x,y)、噪声方差为 σ f \sigma_f σf、局部均值为 f x y ^ \hat{f_{xy}} fxy^、局部方差为 σ x y \sigma_{xy} σxy
四个参数的计算方式可由直方图得出频率与相关值乘积得到。
自适应的表达式为 f ˉ ( x , y ) = f ( x , y ) − σ f 2 σ x y 2 [ f ( x , y ) − f x y ^ ] \bar{f}(x,y)=f(x,y)-\frac{\sigma_f^2}{\sigma_{xy}^2}[f(x,y)-\hat{f_{xy}}] fˉ(x,y)=f(x,y)−σxy2σf2[f(x,y)−fxy^]
该式子的特点在于
\hspace{0.6cm} 若噪声的方差为0,则滤波的结果为 f ( x , y ) f(x,y) f(x,y);
\hspace{0.6cm} 若噪声的方差与局部方差相等,则滤波的结果为图像局部像素值的均值; - 自适应中值滤波器
\hspace{0.3cm} 对中值滤波的优化
在保留图像细节的同时平滑非冲激噪声(非变化剧烈)
与自适应局部降噪滤波器类似,在局部区域进行计算。
在局部区域中, z m i n z_{min} zmin表示最小灰度值, z m a x z_{max} zmax表示最大灰度值, z m e d z_{med} zmed表示灰度值中值, z x y z_{xy} zxy为坐标 ( x , y ) (x,y) (x,y)处的灰度值, S m a x S_{max} Smax表示局部区域的大小。
算法步骤:- 若 z m i n z_{min} zmin < z m e d z_{med} zmed< z m a x z_{max} zmax,则转到第二步;否则,增加局部区域大小,若局部区域大小小于 S m a x S_{max} Smax,重复步骤1,否则输出 z m e d z_{med} zmed
 - 若
       
        
         
          
           
            z
           
           
            
             m
            
            
             i
            
            
             n
            
           
          
         
         
          z_{min}
         
        
       zmin <
       
        
         
          
           
            z
           
           
            
             x
            
            
             y
            
           
          
         
         
          z_{xy}
         
        
       zxy<
       
        
         
          
           
            z
           
           
            
             m
            
            
             a
            
            
             x
            
           
          
         
         
          z_{max}
         
        
       zmax,则输出
       
        
         
          
           
            z
           
           
            
             x
            
            
             y
            
           
          
         
         
          z_{xy}
         
        
       zxy,否则输出
       
        
         
          
           
            z
           
           
            
             m
            
            
             e
            
            
             d
            
           
          
         
         
          z_{med}
         
        
       zmed
算法的主要思想在于通过两层判断,旨在消除冲激噪声,如在第一步转到第二步,可以保证 z m e d z_{med} zmed为非冲激噪声;第二步中无论输出 z m e d z_{med} zmed还是 z x y z_{xy} zxy都达到了消除冲激噪声的目的。但如果最终在第一步中进行了输出,那么不能保证 z m e d z_{med} zmed是否为冲激噪声。
PS:所以该算法旨在尽力消除,不保证全部消除。 
 




















