• 图像中值滤波


    一. 中值滤波:

        中值滤波器是一种可以使图像平滑的滤波器。它使用滤波器范围内的像素的中值去代表该范围内所有的像素。中值滤波是消除图像噪声最常见的手段之一,特别是消除椒盐噪声,中值滤波的效果要比均值滤波更好。


    二. python实现中值滤波和均值滤波,并用两种滤波器对受到椒盐噪声污染的图像进行去噪

    import cv2
    
    import numpy as np
    
    # Median filter
    
    def median_filter(img, K_size=3):
    
        H, W, C = img.shape
    
        ## Zero padding
    
        pad = K_size // 2
    
        out = np.zeros((H + pad*2, W + pad*2, C), dtype=np.float)
    
        out[pad:pad+H, pad:pad+W] = img.copy().astype(np.float)
    
        tmp = out.copy()
    
        # filtering
    
        for y in range(H):
    
            for x in range(W):
    
                for c in range(C):
    
                    out[pad+y, pad+x, c] = np.median(tmp[y:y+K_size, x:x+K_size, c])
    
        out = out[pad:pad+H, pad:pad+W].astype(np.uint8)
    
        return out
    
    # Average filter
    
    def average_filter(img, G=3):
    
        out = img.copy()
    
        H, W, C = img.shape
    
        Nh = int(H / G)
    
        Nw = int(W / G)
    
        for y in range(Nh):
    
            for x in range(Nw):
    
                for c in range(C):
    
                    out[G*y:G*(y+1), G*x:G*(x+1), c] = np.mean(out[G*y:G*(y+1), G*x:G*(x+1), c]).astype(np.int)
    
     
    
        return out
    
    # Read image
    
    img = cv2.imread("../paojie_sp.jpg")
    
    # Median Filter and Average Filter
    
    out1 = median_filter(img, K_size=3)
    
    out2 = average_filter(img,G=3)
    
    # Save result
    
    cv2.imwrite("out1.jpg", out1)
    
    cv2.imwrite("out2.jpg", out2)
    
    cv2.waitKey(0)
    
    cv2.destroyAllWindows()

    三. 实验结果


    受到椒盐噪声污染的图像 ↑

    中值滤波后的图像 ↑

    均值滤波后的图像 ↑

      可以明显看出,对于受到椒盐噪声污染的图像,中值滤波往往比均值滤波的去噪效果要好!


    四. 参考内容:

    https://www.jianshu.com/p/53b4a8b15c28

  • 相关阅读:
    .net知识和学习方法系列(二十)CLR委托
    Asp.net用户管理API的应用(上)
    .net知识和学习方法系列(十七)CLRCLR中的值类型和引用类型
    .net知识和学习方法系列(十九)CLR事件
    Internet Explorer 8 Beta2 常见问题解答
    关于设计模式
    Extjs中ComboBox加载并赋初值
    WPF获取窗体元素
    Extjs使用extend(js继承)
    Extjs解决上传图片预览
  • 原文地址:https://www.cnblogs.com/wojianxin/p/12500348.html
Copyright © 2020-2023  润新知