当前位置: 首页 > news >正文

python实现中值滤波_Python 实现中值滤波、均值滤波

Python图形界面实现中值滤波、均值滤波

红包:

gJ80drozknRNbQHTKO2Y6PlytpUx7mac.jpeg

Lena椒盐噪声图片:

qvxDJW24PVmNdSOhcyXzrUegLEQa6ZnI.png

# -*- 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()

运行结果截图:

nNap1ldW9T2YX3hgtMqBsHGIf6czxAR0.png

相关文章:

  • bigdecimal不保留小数_深入理解 BigDecimal
  • mysql 去重复查询_MySQL事务隔离级别和实现原理(看这一篇文章就够了!)
  • matlab追赶法解三对角方程组_高斯消元法解线性方程组
  • case when then else_第6章 函数、谓词、CASE表达式及练习题
  • git add 撤销_Git中的各种后悔药
  • python 爬取实时数据django显示_django+echart数据动态显示的例子
  • python获取安卓手机的屏幕_[Python]从安卓手机获取屏幕截图
  • rust编程之道 pdf_哪种编程语言又快又省电?有人对比了27种语言
  • python判断一个元素是否在列表中_python判断元素在列表中是否存在
  • python中的可视化工具_Python中常用的可视化工具 Matplotlib 简单入门
  • it项目经理带一个项目的完整_项目经理,一个完整的项目管理流程你做对了吗?...
  • dll 调用exe_盘点RUNDLL32.EXE的多种滥用方式及检测特征
  • python安装launcher要选吗_python的launcher用法知识点总结
  • 怎么用geany配置python_Geany中怎么配置python?
  • python判断按键是否按下_python怎样判断字典中的键是否存在
  • Cumulo 的 ClojureScript 模块已经成型
  • Laravel Mix运行时关于es2015报错解决方案
  • miaov-React 最佳入门
  • Python利用正则抓取网页内容保存到本地
  • Quartz初级教程
  • SAP云平台里Global Account和Sub Account的关系
  • Selenium实战教程系列(二)---元素定位
  • text-decoration与color属性
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 从伪并行的 Python 多线程说起
  • 好的网址,关于.net 4.0 ,vs 2010
  • 缓存与缓冲
  • 基于HAProxy的高性能缓存服务器nuster
  • 坑!为什么View.startAnimation不起作用?
  • 前端知识点整理(待续)
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • puppet连载22:define用法
  • ​【已解决】npm install​卡主不动的情况
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • # 达梦数据库知识点
  • ###C语言程序设计-----C语言学习(6)#
  • #FPGA(基础知识)
  • #pragma multi_compile #pragma shader_feature
  • #QT项目实战(天气预报)
  • #ubuntu# #git# repository git config --global --add safe.directory
  • $().each和$.each的区别
  • (4.10~4.16)
  • (9)目标检测_SSD的原理
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • .NET Framework杂记
  • .net反编译工具
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)
  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...
  • /etc/skel 目录作用
  • [2024最新教程]地表最强AGI:Claude 3注册账号/登录账号/访问方法,小白教程包教包会
  • [Electron]ipcMain.on和ipcMain.handle的区别