python自编中值滤波器

使用python实现图像的中值滤波
椒盐噪声处理的图片:

import numpy as np
import matplotlib.pyplot as plt
from skimage import io
def mediafil(img,m):
#滤波后会缺失边缘,先对原图进行0 padding
    img1=np.zeros((img.shape[0]+m-1,img.shape[1]+m-1))
    img1[(m-1)//2:(img.shape[0]+(m-1)//2),(m-1)//2:(img.shape[1]+(m-1)//2)]=img
#利用np.median寻找中值
    img2=np.zeros(img.shape)
    for i in range((m-1)//2,img2.shape[0]-(m-1)//2):
        for j in range((m-1)//2,img2.shape[1]-(m-1)//2):
            img2[i,j]=np.median(img1[i - (m-1)//2:i + (m-1)//2 + 1, j - (m-1)//2:j + (m-1)//2 + 1])
    return img2
#测试仅用一个通道,三通道遍历即可
img=io.imread("3-5-5.tif")[:,:,0]
m=3
img_new=mediafil(img,m)
plt.subplot(1,2,1)
plt.imshow(img,cmap='gray')
plt.subplot(1,2,2)
plt.imshow(img_new,cmap='gray')
plt.show()

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值