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多线程用法实例详解
Jan 15 Python
Python中优化NumPy包使用性能的教程
Apr 23 Python
Python简单实现控制电脑的方法
Jan 22 Python
Windows环境下python环境安装使用图文教程
Mar 13 Python
Python基于sklearn库的分类算法简单应用示例
Jul 09 Python
Python实现的括号匹配判断功能示例
Aug 25 Python
python分数表示方式和写法
Jun 26 Python
Django实现微信小程序的登录验证功能并维护登录态
Jul 04 Python
python中的 zip函数详解及用法举例
Feb 16 Python
Python实现从N个数中找到最大的K个数
Apr 02 Python
golang/python实现归并排序实例代码
Aug 30 Python
Flask-SocketIO服务端安装及使用代码示例
Nov 26 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 批量更新网页内容实现代码
2010/01/05 PHP
浅析is_writable的php实现
2013/06/18 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
php+layui数据表格实现数据分页渲染代码
2019/10/26 PHP
php如何获取Http请求
2020/04/30 PHP
jQuery的初始化与对象构建之浅析
2011/04/12 Javascript
passwordStrength 基于jquery的密码强度检测代码使用介绍
2011/10/08 Javascript
Extjs3.0 checkboxGroup 动态添加item实现思路
2013/08/14 Javascript
关于JavaScript中name的意义冲突示例介绍
2014/05/29 Javascript
JS实现的表格行鼠标点击高亮效果代码
2015/11/27 Javascript
ExtJS 4.2 Grid组件单元格合并的方法
2016/10/12 Javascript
完美解决jQuery fancybox ie 无法显示关闭按钮的问题
2016/11/29 Javascript
AngularJs表单校验功能实例代码
2017/02/09 Javascript
webpack 打包压缩js和css的方法示例
2018/03/20 Javascript
JavaScript实现京东购物放大镜和选项卡效果的方法分析
2018/07/05 Javascript
微信小程序五子棋游戏的棋盘,重置,对弈实现方法【附demo源码下载】
2019/02/20 Javascript
vue无限轮播插件代码实例
2019/05/10 Javascript
[02:41]DOTA2英雄基础教程 亚巴顿
2014/01/02 DOTA
[46:57]EG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python中动态创建类实例的方法
2017/03/24 Python
Python并发编程协程(Coroutine)之Gevent详解
2017/12/27 Python
python批量读取txt文件为DataFrame的方法
2018/04/03 Python
python matplotlib 画dataframe的时间序列图实例
2019/11/20 Python
pytorch 中的重要模块化接口nn.Module的使用
2020/04/02 Python
python如何编写win程序
2020/06/08 Python
欧洲、亚洲、非洲和拉丁美洲的度假套餐:Great Value Vacations
2019/03/30 全球购物
欧洲最古老的鞋厂:Peter Kaiser
2019/11/05 全球购物
大学生村官个人对照检查材料(群众路线)
2014/09/26 职场文书
2016年公司中秋节致辞
2015/11/26 职场文书
2016党员学习作风建设心得体会
2016/01/21 职场文书
简历中的自我评价应该这样写!
2019/07/12 职场文书
python实现简易自习室座位预约系统
2021/06/30 Python
微信小程序中wxs文件的一些妙用分享
2022/02/18 Javascript
python对文档中元素删除,替换操作
2022/04/02 Python
浅谈Python中对象是如何被调用的
2022/04/06 Python
SQL语句中EXISTS的详细用法大全
2022/06/25 MySQL