Python 实现中值滤波、均值滤波的方法

 更新时间:2019年01月09日 09:58:02   作者:bllddee  
今天小编就为大家分享一篇Python 实现中值滤波、均值滤波的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

红包:

Python 中值滤波、均值滤波

Lena椒盐噪声图片:

Python 中值滤波、均值滤波

# -*- coding: utf-8 -*-
"""
Created on Sat Oct 14 22:16:47 2017

@author: Don
"""

from tkinter import *
from skimage import io
import numpy as np


im=io.imread('lena_sp.jpg', as_grey=True)
im_copy_med = io.imread('lena_sp.jpg', as_grey=True)
im_copy_mea = io.imread('lena_sp.jpg', as_grey=True)
#io.imshow(im)
for i in range(0,im.shape[0]):
 for j in range(0,im.shape[1]):
  im_copy_med[i][j]=im[i][j]
  im_copy_mea[i][j]=im[i][j]
#ui
root = Tk()
root.title("lena")
root.geometry('300x200')

medL = Label(root, text="中值滤波:")
medL.pack()
med_text = StringVar()
med = Entry(root, textvariable = med_text)
med_text.set("")
med.pack()

meaL = Label(root, text="均值滤波:")
meaL.pack()
mea_text = StringVar()
mea = Entry(root, textvariable = mea_text)
mea_text.set("")
mea.pack()

def m_filter(x, y, step):
 sum_s=[]
 for k in range(-int(step/2),int(step/2)+1):
  for m in range(-int(step/2),int(step/2)+1):
   sum_s.append(im[x+k][y+m])
 sum_s.sort()
 return sum_s[(int(step*step/2)+1)]

def mean_filter(x, y, step):
 sum_s = 0
 for k in range(-int(step/2),int(step/2)+1):
  for m in range(-int(step/2),int(step/2)+1):
   sum_s += im[x+k][y+m] / (step*step)
 return sum_s

def on_click():
 if(med_text):
  medStep = int(med_text.get())
  for i in range(int(medStep/2),im.shape[0]-int(medStep/2)):
   for j in range(int(medStep/2),im.shape[1]-int(medStep/2)):
    im_copy_med[i][j] = m_filter(i, j, medStep)
 if(mea_text):
  meaStep = int(mea_text.get())
  for i in range(int(meaStep/2),im.shape[0]-int(meaStep/2)):
   for j in range(int(meaStep/2),im.shape[1]-int(meaStep/2)):
    im_copy_mea[i][j] = mean_filter(i, j, meaStep)
 io.imshow(im_copy_med)
 io.imsave(str(medStep) + 'med.jpg', im_copy_med)
 io.imshow(im_copy_mea)
 io.imsave(str(meaStep) + 'mea.jpg', im_copy_mea)

Button(root, text="filterGo", command = on_click).pack()

root.mainloop()

运行结果截图:

Python 中值滤波、均值滤波

以上这篇Python 实现中值滤波、均值滤波的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 基于python生成器封装的协程类

    基于python生成器封装的协程类

    这篇文章主要为大家详细介绍了基于python生成器封装的协程类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • Python爬虫实战之爬取京东商品数据并实实现数据可视化

    Python爬虫实战之爬取京东商品数据并实实现数据可视化

    今天再带大家简单爬一波京东的商品数据呗,废话不多说,文中有非常详细的代码示例,需要的朋友可以参考下
    2021-06-06
  • Python中闭包与lambda的作用域解析

    Python中闭包与lambda的作用域解析

    这篇文章主要介绍了Python中闭包与lambda的作用域解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • 对Tensorflow中Device实例的生成和管理详解

    对Tensorflow中Device实例的生成和管理详解

    今天小编就为大家分享一篇对Tensorflow中Device实例的生成和管理详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • python实现文件快照加密保护的方法

    python实现文件快照加密保护的方法

    这篇文章主要介绍了python实现文件快照加密保护的方法,涉及Python文件加密的技巧,可有效防止文件被篡改,需要的朋友可以参考下
    2015-06-06
  • Python 使用SMOTE解决数据不平衡问题(最新推荐)

    Python 使用SMOTE解决数据不平衡问题(最新推荐)

    SMOTE是一种强大的过采样技术,可以有效地处理不平衡数据集,提升分类器的性能,通过imbalanced-learn库中的SMOTE实现,我们可以轻松地对少数类样本进行过采样,平衡数据集,这篇文章主要介绍了Python 使用SMOTE解决数据不平衡问题,需要的朋友可以参考下
    2024-05-05
  • pytorch visdom安装开启及使用方法

    pytorch visdom安装开启及使用方法

    这篇文章主要介绍了pytorch visdom安装开启及使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Python中时间datetime的处理与转换用法总结

    Python中时间datetime的处理与转换用法总结

    今天小编就为大家分享一篇关于Python中时间datetime的处理与转换用法总结,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • Pytorch配置GPU环境方式

    Pytorch配置GPU环境方式

    这篇文章主要介绍了Pytorch配置GPU环境方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • python实现list由于numpy array的转换

    python实现list由于numpy array的转换

    下面小编就为大家分享一篇python实现list由于numpy array的转换方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04

最新评论