Python实现中值滤波去噪方式


Posted in Python onDecember 18, 2019

中值滤波器去噪:

中值滤波的主要原理是将数字图像中的某点用该点的邻域中各个像素值的中值所来代替,这样就能让目标像素周围能够更好的接近真实值,比如一张白纸上有一个黑点时,黑点的像素值比较大,经过中值滤波过后,黑点附近的像素值可能就会变小。经过中值滤波后一些相对孤立的噪声点就容易被清除掉,这样就能提高图像的质量。

所以中值滤波器去噪的一个优点就是对椒盐噪声的去除具有很好的效果,具体操作是选取一个中心邻域,然后给邻域类各个像素的灰度值按大小进行排序,选取排序序列中的中值作为该邻域中心点的像素值的灰度值。

它的缺点是当邻域挑选过大时,可能会造成图像特征丢失。

实现代码如下:

import numpy as np
import cv2
from PIL import Image
import scipy.signal as signal
import matplotlib.pyplot as plt
#创建一个500*500的矩阵
input_images = np.zeros((500, 500))
filename = "E:/pycharm/GraduationDesign/Test/testtwo.png"
#convert将当前图像转换为灰度模式,并且返回新的图像。
#将图片在重新定义的矩阵中再显示,不然可能会只显示部分。
img = Image.open(filename).resize((500, 500)).convert('L')
plt.subplot(221)
plt.title('原图', fontproperties=font_set)
plt.imshow(img)
#图像的尺寸,按照像素数计算。它的返回值为宽度和高度的二元组(width, height)。
width = img.size[0]
height = img.size[1]
threshold=130
#可以改写代码使其成为二值化,此代码可理解为反向二值化
for h in range(height):
 for w in range(width):
  #getpixel直接获得(h,w)处的像素直接返回这个点三个通道的像素值
  #返回给定位置的像素值。如果图像为多通道,则返回一个元组(r,g,b,阈值)。
  #如果改成(w,h)出现的图像会倒转
  if img.getpixel((w, h)) < threshold:
 
   input_images[h, w] = 1
  else:
   input_images[h, w] = 0
plt.subplot(222)
plt.title('二值化', fontproperties=font_set)
plt.imshow(input_images)
 
data = signal.medfilt2d(np.array(img), kernel_size=3) # 二维中值滤波
for h in range(0, height):
 for w in range(0, width):
  if data[h][w] < 128:
   input_images[h, w] = 0
  else:
   input_images[h, w] = 1
 
plt.subplot(223)
plt.title('中值滤波去噪(3*3)', fontproperties=font_set)
plt.imshow(input_images)
 
data = signal.medfilt2d(np.array(img), kernel_size=7) # 二维中值滤波
for h in range(0, height):
 for w in range(0, width):
  if data[h][w] < 128:
   input_images[h, w] = 0
  else:
   input_images[h, w] = 1
plt.subplot(224)
plt.title('中值滤波去噪(7*7)', fontproperties=font_set)
plt.imshow(input_images)
plt.show()

效果图:

Python实现中值滤波去噪方式

图中的小黑点是我简单模拟实现图片中含有椒盐噪声中所加入的。当中值滤波领域选取过大时会使图片失真。

以上这篇Python实现中值滤波去噪方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之眼花缭乱的运算符
Sep 14 Python
安装dbus-python的简要教程
May 05 Python
Python使用MYSQLDB实现从数据库中导出XML文件的方法
May 11 Python
python实现带声音的摩斯码翻译实现方法
May 20 Python
python实现验证码识别功能
Jun 07 Python
Python2与Python3的区别实例总结
Apr 17 Python
python用for循环求和的方法总结
Jul 08 Python
详解PyTorch中Tensor的高阶操作
Aug 18 Python
pytorch 在sequential中使用view来reshape的例子
Aug 20 Python
解决Pytorch 加载训练好的模型 遇到的error问题
Jan 10 Python
Tensorflow:转置函数 transpose的使用详解
Feb 11 Python
python实现双链表
May 25 Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
Dec 18 #Python
Python字典底层实现原理详解
Dec 18 #Python
Python利用PyExecJS库执行JS函数的案例分析
Dec 18 #Python
简单介绍django提供的加密算法
Dec 18 #Python
详解从Django Allauth中进行登录改造小结
Dec 18 #Python
解决pycharm最左侧Tool Buttons显示不全的问题
Dec 17 #Python
python 字段拆分详解
Dec 17 #Python
You might like
学习php中的正则表达式
2014/08/17 PHP
跟我学Laravel之配置Laravel
2014/10/15 PHP
smarty实现多级分类的方法
2014/12/05 PHP
php实现递归与无限分类的方法
2015/02/16 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
用javascript动态调整iframe高度的代码
2007/04/10 Javascript
jQuery对象和DOM对象相互转化
2009/04/24 Javascript
为EasyUI的Tab标签添加右键菜单的方法
2012/07/14 Javascript
JavaScript字符串String和Array操作的有趣方法
2012/12/18 Javascript
javascript通过class来获取元素实现代码
2013/02/20 Javascript
绑定回车enter事件代码
2014/05/18 Javascript
一个简单的全屏图片上下打开显示网页效果示例
2014/07/08 Javascript
JQuery异步获取返回值中文乱码的解决方法
2015/01/29 Javascript
js实现上传图片预览的方法
2015/02/09 Javascript
Javascript中获取对象的原型对象的方法小结
2015/02/25 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
2015/09/24 Javascript
JS实现动态生成表格并提交表格数据向后端
2020/11/25 Javascript
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
2016/12/14 Javascript
JS实现控制图片显示大小的方法【图片等比例缩放功能】
2017/02/18 Javascript
利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法
2019/03/29 Javascript
深入理解python中的atexit模块
2017/03/07 Python
python使用SMTP发送qq或sina邮件
2017/10/21 Python
python list是否包含另一个list所有元素的实例
2018/05/04 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
2018/07/11 Python
Python自定义装饰器原理与用法实例分析
2018/07/16 Python
python tkinter图形界面代码统计工具(更新)
2019/09/18 Python
python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)
2020/08/11 Python
荷兰在线体育用品商店:Avantisport.nl
2018/07/04 全球购物
电脑教师的自我评价
2013/12/18 职场文书
拓展培训心得体会
2014/01/04 职场文书
文秘应聘自荐书范文
2014/02/18 职场文书
80后职场人的职业生涯规划
2014/03/08 职场文书
学校党风廉政建设调研报告
2015/01/01 职场文书
超市啤酒狂欢夜策划方案范文!
2019/07/03 职场文书
简述python四种分词工具,盘点哪个更好用?
2021/04/13 Python
python操作xlsx格式文件并读取
2021/06/02 Python