网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

python中值滤波函数,python滤波器信号处理

中值滤波

一. 中值滤波:

我们提供的服务有:网站建设、成都网站设计、微信公众号开发、网站优化、网站认证、城北ssl等。为1000+企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的城北网站制作公司

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

二. 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()

三. 实验结果

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

四. 参考内容:

   

python 中一维数据中值滤波函数,在matlab中有 medfilt1函数,Python中有吗,只找到了图像2维的,

有的,在numpy包中

import numpy as np

dat = [1,3,5,6,7,2,4]

med = np.median(dat) # med=4.0

如何用python实现图像的一维高斯滤波

如何用python实现图像的一维高斯滤波

建议你不要使用高斯滤波。

推荐你使用一维中值滤波

matlab的函数为

y = medfilt1(x,n);

x为数组,是你要处理原始波形,n是中值滤波器的参数(大于零的整数)。y是滤波以后的结果(是数组)

后面再

plot(y);

就能看到滤波以后的结果

经过medfilt1过滤以后,y里储存的是低频的波形,如果你需要高频波形,x-y就是高频波形

顺便再说一点,n是偶数的话,滤波效果比较好。

N越小,y里包含的高频成分就越多,y越大,y里包含的高频成分就越少。

记住,无论如何y里保存的都是整体的低频波。(如果你看不懂的话,滤一下,看y波形,你马上就懂了)


文章标题:python中值滤波函数,python滤波器信号处理
本文链接:http://bjjierui.cn/article/dssoigp.html

其他资讯