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常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
Aug 25 Python
Python version 2.7 required, which was not found in the registry
Aug 26 Python
Python实现在Linux系统下更改当前进程运行用户
Feb 04 Python
在Python中使用swapCase()方法转换大小写的教程
May 20 Python
python关键字and和or用法实例
May 28 Python
通过python将大量文件按修改时间分类的方法
Oct 17 Python
Python笔记之观察者模式
Nov 20 Python
python pyecharts 实现一个文件绘制多张图
May 13 Python
python如何输出反斜杠
Jun 18 Python
python安装sklearn模块的方法详解
Nov 28 Python
python中xlrd模块的使用详解
Feb 01 Python
pytorch 6 batch_train 批训练操作
May 28 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设计模式 Composite (组合模式)
2011/06/26 PHP
php创建和删除目录函数介绍和递归删除目录函数分享
2014/11/18 PHP
jQuery 创建Dom元素
2010/05/07 Javascript
JavaScript类和继承 prototype属性
2010/09/03 Javascript
jQuery Validation实例代码 让验证变得如此容易
2010/10/18 Javascript
js Math 对象的方法
2013/09/01 Javascript
浅谈Sizzle的“编译原理”
2015/04/14 Javascript
原生js和jQuery实现淡入淡出轮播效果
2015/12/25 Javascript
JS动态给对象添加属性和值的实现方法
2016/10/21 Javascript
MUI 解决动态列表页图片懒加载再次加载不成功的bug问题
2017/04/13 Javascript
详谈jQuery中使用attr(), prop(), val()获取value的异同
2017/04/25 jQuery
vue组件数据传递、父子组件数据获取,slot,router路由功能示例
2019/03/19 Javascript
Vue 中文本内容超出规定行数后展开收起的处理的实现方法
2019/04/28 Javascript
JavaScript This指向问题详解
2019/11/25 Javascript
Vue+ElementUI table实现表格分页
2019/12/14 Javascript
JS 事件机制完整示例分析
2020/01/15 Javascript
Vue data的数据响应式到底是如何实现的
2020/02/11 Javascript
vue全屏事件开发详解
2020/06/17 Javascript
javascript实现拖拽碰撞检测
2020/03/12 Javascript
Python虚拟环境项目实例
2017/11/20 Python
python类的方法属性与方法属性的动态绑定代码详解
2017/12/27 Python
用python打印1~20的整数实例讲解
2019/07/01 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
2019/08/09 Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
2019/08/28 Python
python interpolate插值实例
2020/07/06 Python
Python配置pip国内镜像源的实现
2020/08/20 Python
前台文员的岗位职责
2013/11/14 职场文书
万年牢教学反思
2014/02/15 职场文书
工程造价专业大学生职业规划范文
2014/03/09 职场文书
市场营销专业自荐书
2014/06/10 职场文书
纪律教育月活动总结
2014/08/26 职场文书
房屋租赁合同协议书范本
2014/10/19 职场文书
庐山导游词
2015/02/03 职场文书
清明节扫墓活动总结
2015/02/09 职场文书
2015年团队工作总结范文
2015/05/04 职场文书
python 解决微分方程的操作(数值解法)
2021/05/26 Python