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访问sqlserver示例
Feb 10 Python
深入解析Python编程中super关键字的用法
Jun 24 Python
Python 基础教程之包和类的用法
Feb 23 Python
python数据结构链表之单向链表(实例讲解)
Jul 25 Python
Python简单读取json文件功能示例
Nov 30 Python
python正则表达式之对号入座篇
Jul 24 Python
解决django前后端分离csrf验证的问题
Feb 03 Python
pandas中的数据去重处理的实现方法
Feb 10 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
Feb 27 Python
Python如何实现远程方法调用
Aug 07 Python
Python编程中Python与GIL互斥锁关系作用分析
Sep 15 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常见数组函数用法小结
2016/03/21 PHP
php连接oracle数据库的核心步骤
2016/05/26 PHP
php实现的中文分词类完整实例
2017/02/06 PHP
PDO::inTransaction讲解
2019/01/28 PHP
解决PhpStorm64不能启动的问题
2020/06/20 PHP
再论Javascript的类继承
2011/03/05 Javascript
基于JQuery实现的类似购物商城的购物车
2011/12/06 Javascript
js与C#进行时间戳转换
2014/11/14 Javascript
JavaScript遍历求解数独问题的主要思路小结
2016/06/12 Javascript
jQuery实现复制到粘贴板功能
2017/02/11 Javascript
ES6(ECMAScript 6)新特性之模板字符串用法分析
2017/04/01 Javascript
微信小程序登录态控制深入分析
2017/04/12 Javascript
JS+WCF实现进度条实时监测数据加载量的方法详解
2017/12/19 Javascript
浅析vue中常见循环遍历指令的使用 v-for
2018/04/18 Javascript
以v-model与promise两种方式实现vue弹窗组件
2018/05/21 Javascript
解决Vue+Element ui开发中碰到的IE问题
2018/09/03 Javascript
使用validate.js实现表单数据提交前的验证方法
2018/09/04 Javascript
element vue Array数组和Map对象的添加与删除操作
2018/11/14 Javascript
SpringBoot在yml配置文件中配置druid的操作
2020/11/16 Javascript
[01:01:41]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第二场 1月31日
2021/03/11 DOTA
python pands实现execl转csv 并修改csv指定列的方法
2018/12/12 Python
python实现词法分析器
2019/01/31 Python
python assert的用处示例详解
2019/04/01 Python
Python Flask 搭建微信小程序后台详解
2019/05/06 Python
python正则表达式匹配IP代码实例
2019/12/28 Python
详解CSS3浏览器兼容
2016/12/14 HTML / CSS
德国最新街头服饰网上商店:BODYCHECK
2019/09/15 全球购物
中学自我评价
2014/01/31 职场文书
2014年学习雷锋活动总结
2014/03/01 职场文书
党员三严三实心得体会
2014/10/13 职场文书
2015关爱留守儿童工作总结
2014/12/12 职场文书
优秀党员申报材料
2014/12/18 职场文书
基层组织建设年活动总结
2015/05/09 职场文书
Python如何识别银行卡卡号?
2021/06/10 Python
php去除deprecated的实例方法
2021/11/17 PHP
Python 操作pdf pdfplumber读取PDF写入Exce
2022/08/14 Python