均值滤波

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了均值滤波相关的知识,希望对你有一定的参考价值。

参考技术A 一. 均值滤波简介和原理

        均值滤波,是图像处理中常用的手段,从频率域观点来看均值滤波是一种低通滤波器,高频信号将会去掉。均值滤波可以帮助消除图像尖锐噪声,实现图像平滑,模糊等功能。理想的均值滤波是用每个像素和它周围像素计算出来的平均值替换图像中每个像素。

        以3*3均值滤波器为例,均值滤波器算法原理如下图:

二. 用均值滤波器对椒盐噪声污染后的图像去噪

        python 源码:

import cv2

import numpy as np

# mean filter

def mean_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.mean(tmp[y: y + K_size, x: x + K_size, c])

    out = out[pad: pad + H, pad: pad + W].astype(np.uint8)

    return out

# Read image

img = cv2.imread("../paojie_sp1.jpg")

# Mean Filter

out = mean_filter(img, K_size=5)

# Save result

cv2.imwrite("out.jpg", out)

cv2.imshow("result", out)

cv2.waitKey(0)

cv2.destroyAllWindows()

三. 实验结果:

        可以看到,均值滤波后,图像中噪声虽然有所减弱,但是图像变模糊了。因为均值滤波器过滤掉了图像中的高频分量,所以图像的边缘都变模糊了。(去除一定量椒盐噪声,可以考虑使用中值滤波)

四. 参考内容:

        https://www.cnblogs.com/wojianxin/p/12501891.html

以上是关于均值滤波的主要内容,如果未能解决你的问题,请参考以下文章

怎样用MATLAB实现中值和均值滤波

均值滤波

均值滤波,中值滤波,最大值滤波,最小值滤波

计算3x3窗口的均值滤波和中值滤波(向下取整保留整数值)。

均值滤波,中值滤波,最大最小值滤波

java实现中值滤波均值滤波拉普拉斯滤波