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的id()函数介绍
Feb 10 Python
Python 字符串操作方法大全
Mar 11 Python
python利用dir函数查看类中所有成员函数示例代码
Sep 08 Python
一个Python最简单的接口自动化框架
Jan 02 Python
Python中摘要算法MD5,SHA1简介及应用实例代码
Jan 09 Python
详解Python3 基本数据类型
Apr 19 Python
python3实现从kafka获取数据,并解析为json格式,写入到mysql中
Dec 23 Python
Python实现自动打开电脑应用的示例代码
Apr 17 Python
tensorflow转换ckpt为savermodel模型的实现
May 25 Python
PyCharm中如何直接使用Anaconda已安装的库
May 28 Python
Python 发送邮件方法总结
Aug 10 Python
python神经网络学习 使用Keras进行简单分类
May 04 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+mysql扎实个人基本功
2008/03/27 PHP
一个基于PDO的数据库操作类
2011/03/24 PHP
php简单分页类实现方法
2015/02/26 PHP
Laravle eloquent 多对多模型关联实例详解
2017/11/22 PHP
YII框架常用技巧总结
2019/04/27 PHP
Prototype 学习 Prototype对象
2009/07/12 Javascript
Javascript学习笔记2 函数
2010/01/11 Javascript
一个简单的弹性返回顶部JS代码实现介绍
2013/06/09 Javascript
jQuery实现“扫码阅读”功能
2015/01/21 Javascript
基于jQuery实现美观且实用的倒计时实例代码
2015/12/30 Javascript
理解javascript中的with关键字
2016/02/15 Javascript
浅谈$('div a') 与$('div&gt;a')的区别
2016/07/18 Javascript
微信小程序 video组件详解
2016/10/25 Javascript
Bootstrap模态框案例解析
2017/03/05 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
2017/09/11 Javascript
解决vue项目中type=”file“ change事件只执行一次的问题
2018/05/16 Javascript
Vue中Quill富文本编辑器的使用教程
2018/09/21 Javascript
vue-cli项目使用mock数据的方法(借助express)
2019/04/15 Javascript
vue2 拖动排序 vuedraggable组件的实现
2019/08/08 Javascript
[01:03:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第一场 1月29日
2021/03/11 DOTA
Python利用正则表达式匹配并截取指定子串及去重的方法
2015/07/30 Python
python3第三方爬虫库BeautifulSoup4安装教程
2018/06/19 Python
在python中利用GDAL对tif文件进行读写的方法
2018/11/29 Python
在Python中通过threshold创建mask方式
2020/02/19 Python
pytorch使用horovod多gpu训练的实现
2020/09/09 Python
HTML5实践-图片设置成灰度图
2012/11/12 HTML / CSS
同步和异步有何异同,在什么情况下分别使用他们?举例说明
2014/02/27 面试题
美术师范毕业生自荐信
2013/11/16 职场文书
文员的职业生涯规划发展方向
2014/02/08 职场文书
幼儿教师研修感言
2014/02/12 职场文书
英语课前三分钟演讲稿
2014/08/19 职场文书
学校党的群众路线教育实践活动整改措施
2014/10/25 职场文书
单身证明格式样本
2015/06/15 职场文书
WordPress多语言翻译插件 - WPML使用教程
2021/04/01 PHP
Nginx反向代理、重定向
2022/04/13 Servers
怎么禁用Win11输入法 最新Win11输入法关闭教程
2022/08/05 数码科技