Python 实现中值滤波、均值滤波
2017-10-17 14:44
519 查看
Python图形界面实现中值滤波、均值滤波
Lena椒盐噪声图片:
运行结果截图:
Lena椒盐噪声图片:
# -*- 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实现椒盐噪声、中值滤波、均值滤波,OpenCV
- opencv实现图像邻域均值滤波、中值滤波、高斯滤波
- 图像平滑技术之核算子、均值滤波、中值滤波、高斯滤波、双边滤滤、导向滤波的原理概要及OpenCV代码实现
- 均值滤波、中值滤波的matlab实现
- 基于OpenCV底层实现均值滤波,中值滤波和高斯滤波
- opencv实现图像邻域均值滤波、中值滤波、高斯滤波
- 【计算机视觉】卷积、均值滤波、高斯滤波、Sobel算子、Prewitt算子(Python实现)
- 基于MATLAB图像处理的中值滤波、均值滤波以及高斯滤波的实现与对比
- 数字图像处理,中值滤波和均值滤波及其改进算法的C++实现
- 均值滤波、中值滤波的matlab实现
- opencv实现图像邻域均值滤波、中值滤波、高斯滤波
- 均值滤波、中值滤波的matlab实现
- 均值滤波、中值滤波的matlab实现
- opencv实现图像邻域均值滤波、中值滤波、高斯滤波
- python3 利用opencv 添加中值滤波,均值滤波,高斯滤波,高斯双边滤波
- 【python】均值滤波,中值滤波,最大值滤波,最小值滤波
- matlab-----均值滤波函数的实现
- 均值滤波、中值滤波、混合中值滤波C++源码实例
- 【图像处理】图像滤波去噪声——均值滤波、中值滤波、对称均值滤波 低通滤波 高通滤波(opencv)
- 均值滤波、中值滤波、维纳滤波 对 高斯噪声、椒盐噪声、乘性噪声 的处理效果