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的Django框架中simple-todo工具的简单使用
May 30 Python
Python中的浮点数原理与运算分析
Oct 12 Python
python3.6.3转化为win-exe文件发布的方法
Oct 31 Python
Django logging配置及使用详解
Jul 23 Python
Pandas0.25来了千万别错过这10大好用的新功能
Aug 07 Python
Python学习笔记之字符串和字符串方法实例详解
Aug 22 Python
TensorFlow——Checkpoint为模型添加检查点的实例
Jan 21 Python
Python进程Multiprocessing模块原理解析
Feb 28 Python
Python unittest装饰器实现原理及代码
Sep 08 Python
pymongo insert_many 批量插入的实例
Dec 05 Python
python小型的音频操作库mp3Play
Apr 24 Python
Django框架模板用法详解
Jun 10 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 expects parameter 1 to be resource, array given 错误
2011/03/23 PHP
简单实用的.net DataTable导出Execl
2013/10/28 PHP
php读取大文件示例分享(文件操作类)
2014/04/13 PHP
Jquery实现控件的隐藏和显示实例
2014/02/08 Javascript
控制文字内容的显示与隐藏示例
2014/06/11 Javascript
谈一谈js中的执行环境及作用域
2016/03/30 Javascript
jQuery判断元素是否显示 是否隐藏的简单实现代码
2016/05/19 Javascript
node.js 动态执行脚本
2016/06/02 Javascript
基于jQuery实现顶部导航栏功能
2016/12/27 Javascript
常用的几个JQuery代码片段
2017/03/13 Javascript
Web制作验证码功能实例代码
2017/06/19 Javascript
jQuery Position方法使用和兼容性
2017/08/23 jQuery
JS+WCF实现进度条实时监测数据加载量的方法详解
2017/12/19 Javascript
高性能的javascript之加载顺序与执行原理篇
2018/01/14 Javascript
解决vue中对象属性改变视图不更新的问题
2018/02/23 Javascript
详解.vue文件解析的实现
2018/06/11 Javascript
Vue实现背景更换颜色操作
2020/07/17 Javascript
JS中队列和双端队列实现及应用详解
2020/09/29 Javascript
python Django模板的使用方法
2016/01/14 Python
Python zip()函数用法实例分析
2018/03/17 Python
pandas表连接 索引上的合并方法
2018/06/08 Python
在Django中实现添加user到group并查看
2019/11/18 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
2020/03/28 Python
Jupyter加载文件的实现方法
2020/04/14 Python
Django DRF路由与扩展功能的实现
2020/06/03 Python
美国乡村商店:Plow & Hearth
2016/09/12 全球购物
Sam’s Club山姆会员商店:沃尔玛旗下高端会员制商店
2017/01/16 全球购物
天猫国际进口超市直营:官方直采,一站购齐
2017/12/11 全球购物
For Art’s Sake官网:手工制作的奢华眼镜
2018/12/15 全球购物
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
德国便宜的宠物店:Brekz.de
2020/10/23 全球购物
几个人围成一圈的问题
2013/09/26 面试题
初二政治教学反思
2014/01/12 职场文书
党的群众路线查摆剖析材料
2014/10/10 职场文书
JS异步堆栈追踪之为什么await胜过Promise
2021/04/28 Javascript
js前端设计模式优化50%表单校验代码示例
2022/06/21 Javascript