python 中值滤波

中值滤波是数字信号处理和数字图像处理领域使用较多的预处理技术,使用邻域内所有信号的中位数替换中心像素的值,可以在滤除异常值的情况下较好地保留纹理信息。该技术会在一定程度上造成图像模糊和失真,滤波窗口变大时会非常明显。

import numpy as np

from PIL import Image

import scipy.signal as signal


im = Image.open('lena.jpg')

data = []

width, height = im.size


# 读取图像像素值

for in range(height):

    row = []

    for in range(width):

        value = im.getpixel((w,h))

        row.append(value)

    data.append(row)


# 二维中值滤波

data = np.float32(data)

# 滤波窗口的大小会对结果产生很大影响

data = signal.medfilt2d(data, (3,3))


# 创建并保存结果图像

for in range(height):

    for in range(width):

        im.putpixel((w,h), int(data[h][w]))


im.save('result.jpg')


原始图像:

滤波窗口为(3,3)时的结果:

滤波窗口为(5,5)时的结果:

滤波窗口为(11,11)时的结果:


  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值