【OpenCV 完整例程】97. 反谐波平均滤波器
3. 仅噪声存在的空间滤波图像复原
当一幅图像中唯一存在的退化是噪声时,退化模型简化为:
 
     
      
       
        
         g
        
        
         (
        
        
         x
        
        
         ,
        
        
         y
        
        
         )
        
        
         =
        
        
         f
        
        
         (
        
        
         x
        
        
         ,
        
        
         y
        
        
         )
        
        
         +
        
        
         η
        
        
         (
        
        
         x
        
        
         ,
        
        
         y
        
        
         )
        
        
        
         G
        
        
         (
        
        
         u
        
        
         ,
        
        
         v
        
        
         )
        
        
         =
        
        
         F
        
        
         (
        
        
         u
        
        
         ,
        
        
         v
        
        
         )
        
        
         +
        
        
         N
        
        
         (
        
        
         u
        
        
         ,
        
        
         v
        
        
         )
        
       
       
         g(x,y) = f(x,y) + \eta(x,y) \\ G(u,v) = F(u,v) + N(u,v) 
       
      
     g(x,y)=f(x,y)+η(x,y)G(u,v)=F(u,v)+N(u,v)
 当仅存在加性随机噪声时,可以采用空间滤波方法来估计原图像 
    
     
      
       
        f
       
       
        (
       
       
        x
       
       
        ,
       
       
        y
       
       
        )
       
      
      
       f(x,y)
      
     
    f(x,y),即对退化图像 
    
     
      
       
        g
       
       
        (
       
       
        x
       
       
        ,
       
       
        y
       
       
        )
       
      
      
       g(x,y)
      
     
    g(x,y) 去除噪声。
3.4 反谐波平均滤波器(Invert-harmonic mean filter)
反谐波平均滤波器适用于降低或消除椒盐噪声,复原图像 
    
     
      
       
        
         f
        
        
         ^
        
       
      
      
       \hat{f}
      
     
    f^ 由下式给出:
 
     
      
       
        
         
          f
         
         
          ^
         
        
        
         (
        
        
         x
        
        
         ,
        
        
         y
        
        
         )
        
        
         =
        
        
         
          
           
            ∑
           
           
            
             (
            
            
             r
            
            
             ,
            
            
             c
            
            
             )
            
            
             ∈
            
            
             S
            
            
             x
            
            
             y
            
           
          
          
           
            
             g
            
            
             (
            
            
             r
            
            
             ,
            
            
             c
            
            
             )
            
           
           
            
             Q
            
            
             +
            
            
             1
            
           
          
         
         
          
           
            ∑
           
           
            
             (
            
            
             r
            
            
             ,
            
            
             c
            
            
             )
            
            
             ∈
            
            
             S
            
            
             x
            
            
             y
            
           
          
          
           
            
             g
            
            
             (
            
            
             r
            
            
             ,
            
            
             c
            
            
             )
            
           
           
            Q
           
          
         
        
       
       
         \hat{f}(x,y) = \frac {\sum _{(r,c) \in Sxy} {g(r,c)}^{Q+1}} {\sum _{(r,c) \in Sxy} {g(r,c)}^Q} 
       
      
     f^(x,y)=∑(r,c)∈Sxyg(r,c)Q∑(r,c)∈Sxyg(r,c)Q+1
 Q 称为滤波器的阶数,Q 取正整数时可以消除胡椒噪声,Q 取负整数时可以消除盐粒噪声,但不能同时消除这两种噪声。使用反谐波平均滤波器必须知道噪声是亮噪声还是暗噪声,据此选择 Q 的正负号。
反谐波平均滤波器当 Q = 0 Q=0 Q=0 时简化为算术平均滤波器;当 Q = − 1 Q=-1 Q=−1 时简化为谐波平均滤波器。
例程 9.11:反谐波平均滤波器
    # 9.11: 反谐波平均滤波器 (Inv-harmonic mean filter)
    img = cv2.imread("../images/Fig0508a.tif", 0)  # flags=0 读取为灰度图像
    img_h = img.shape[0]
    img_w = img.shape[1]
    m, n = 3, 3
    order = m * n
    kernalMean = np.ones((m,n), np.float32)  # 生成盒式核
    hPad = int((m-1) / 2)
    wPad = int((n-1) / 2)
    imgPad = np.pad(img.copy(), ((hPad, m-hPad-1), (wPad, n-wPad-1)), mode="edge")
    Q = 1.5  # 反谐波平均滤波器 阶数
    epsilon = 1e-8
    imgHarMean = img.copy()
    imgInvHarMean = img.copy()
    for i in range(hPad, img_h + hPad):
        for j in range(wPad, img_w + wPad):
            # 谐波平均滤波器 (Harmonic mean filter)
            sumTemp = np.sum(1.0 / (imgPad[i-hPad:i+hPad+1, j-wPad:j+wPad+1] + epsilon))
            imgHarMean[i-hPad][j-wPad] = order / sumTemp
            # 反谐波平均滤波器 (Inv-harmonic mean filter)
            temp = imgPad[i-hPad:i+hPad+1, j-wPad:j+wPad+1] + epsilon
            imgInvHarMean[i-hPad][j-wPad] = np.sum(np.power(temp, (Q+1))) / np.sum(np.power(temp, Q) + epsilon)
    plt.figure(figsize=(9, 6))
    plt.subplot(131), plt.axis('off'), plt.title("Original")
    plt.imshow(img, cmap='gray', vmin=0, vmax=255)
    plt.subplot(132), plt.axis('off'), plt.title("Harmonic mean filter")
    plt.imshow(imgHarMean, cmap='gray', vmin=0, vmax=255)
    plt.subplot(133), plt.axis('off'), plt.title("Invert harmonic mean")
    plt.imshow(imgInvHarMean, cmap='gray', vmin=0, vmax=255)
    plt.tight_layout()
    plt.show()

(本节完)
版权声明:
youcans@xupt 原创作品,转载必须标注原文链接
Copyright 2021 youcans, XUPT
Crated:2022-2-1










