椒盐噪声也称为脉冲噪声,是图像中经常见到的一种噪声,它是一种随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素(或是两者皆有)。椒盐噪声的成因可能是影像讯号受到突如其来的强烈干扰而产生、类比数位转换器或位元传输错误等。例如失效的感应器导致像素值为最小值,饱和的感应器导致像素值为最大值。

常用的去除这种噪声的有效手段是使用中值滤波器。

在图像处理中,在进行如边缘检测这样的进一步处理之前,通常需要首先进行一定程度的降噪。中值滤波是一种非线性数字滤波器技术,经常用于去除图像或者其它信号中的噪声。这个设计思想就是检查输入信号中的采样并判断它是否代表了信号,使用奇数个采样组成的观察窗实现这项功能。观察窗口中的数值进行排序,位于观察窗中间的中值作为输出。然后,丢弃最早的值,取得新的采样,重复上面的计算过程。

中值滤波是图像处理中的一个常用步骤,它对于斑点噪声和椒盐噪声来说尤其有用。保存边缘的特性使它在不希望出现边缘模糊的场合也很有用。

一副数字图像生成椒盐噪声的步骤如下:

1.指定信噪比 SNR (其取值范围在[0, 1]之间)

2.计算总像素数目 SP, 得到要加噪的像素数目 NP = SP * (1-SNR)

3.随机获取要加噪的每个像素位置P(i, j)

4.指定像素值为255或者0。

5.重复3,4两个步骤完成所有像素的NP个像素

6.输出加噪以后的图像

中值滤波cv2.medianBlur(img, 3)这个函数的参数可以调节!!!!!!!!

import cv2
import numpy as npdef addSaltNoise(img,snr):# 指定信噪比SNR = snr# 获取总共像素个数size = img.size# 因为信噪比是 SNR ,所以噪声占据百分之10,所以需要对这百分之10加噪声noiseSize = int(size * (1 - SNR))# 对这些点加噪声for k in range(0, noiseSize):# 随机获取 某个点xi = int(np.random.uniform(0, img.shape[1]))xj = int(np.random.uniform(0, img.shape[0]))# 增加噪声if img.ndim == 2:img[xj, xi] = 255elif img.ndim == 3:img[xj, xi] = 0return imgdef removeSaltNoise():filename = "C:/Users/hanyufeng/Desktop/3.jpg"# 得到加噪声之后的图像img = addSaltNoise(cv2.imread(filename),0.9)# 进行中值滤波#一开始参数值是3,不是7dstimg = cv2.medianBlur(img, 7)cv2.imshow('src', img)cv2.imshow('dst', dstimg)cv2.waitKey(0)def main():removeSaltNoise()if __name__ == '__main__':main()

Opencv学习(四)图像的噪声处理(椒盐噪声)相关推荐

  1. python+OpenCv笔记(八):图像噪声(椒盐噪声、高斯噪声)

    由于图像采集.处理.传输等过程不可避免的会受到噪声的污染,妨碍人们对图像理解及分析处理.常见的图像噪声有高斯噪声.椒盐噪声等. 一.椒盐噪声 椒盐噪声也称为脉冲噪声,是图像中经常见到的一种噪声,它是一 ...

  2. 【OpenCV 例程200篇】92. 指数噪声、均匀噪声、椒盐噪声

    [OpenCV 例程200篇]92. 指数噪声.均匀噪声.椒盐噪声 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 2 ...

  3. python给图像添加噪声(高斯噪声、椒盐噪声)

    方法 1.首先我们要用到 skimage 第三方库,安装方法: pip install scikit-image 2.代码部分,我们使用数据批处理方式: from PIL import Image f ...

  4. 通过matlab编程,对以下图像分别添加高斯噪声和椒盐噪声(参数自定),并使用理想低通滤波器、高斯低通滤波器和巴特沃斯低通滤波器进行去噪。

    添加高斯噪声和椒盐噪声,并用理想低通滤波器进行去噪 t=imread('C:\Users\Administrator\Desktop\123.jpg'); subplot(3,2,1) imshow( ...

  5. opencv学习---计算图像的水平积分投影和垂直积分投影

    opencv学习---计算图像的水平积分投影和垂直积分投影 标签: opencv水平积分投影垂直积分投影 2016-12-07 18:48 1806人阅读 评论(1) 收藏 举报 分类: opencv ...

  6. 通过matlab编程,对该图像分别添加高斯噪声和椒盐噪声(参数自定),并使用均值滤波、高斯滤波和中值滤波进行去噪。

    分别添加高斯和椒盐噪声 im = imread('C:\Users\Administrator\Desktop\123456.jpg');% 1)生成含有高斯噪声.椒盐噪声的图像 % imnoise ...

  7. 图像加噪(高斯噪声和椒盐噪声)

    1.高斯噪声 在空间域和频率域中,由于高斯噪声在数学上的易处理性,故实践中常用这种噪声模型. 高斯随机变量z的PDF由下式给出: 高斯噪声是指概率密度函数服从高斯分布(即正态分布)的一类噪声.常见的高 ...

  8. 浅析“高斯白噪声”,“泊松噪声”,“椒盐噪声”的区别

    from:https://www.jianshu.com/p/67f909f3d0ce 在图像处理的过程中,一般情况下都进行图像增强,图像增强主要包括"空域增强"和"频域 ...

  9. python添加高斯噪声_使用Python-OpenCV向图片添加噪声(高斯噪声、椒盐噪声)

    在matlab中,存在执行直接得函数来添加高斯噪声和椒盐噪声.Python-OpenCV中虽然不存在直接得函数,但是很容易使用相关的函数来实现. 代码: import numpy as np impo ...

  10. 像素 噪声 matlab,椒盐噪声去噪_matlab 椒盐噪声_椒盐噪声图片

    椒盐噪声去噪 [摘要] [摘 要]本文对中值滤波算法进行了改进,提出了一种基于噪声点检测的椒盐噪声去除方法.椒盐噪声去噪对分布在噪声范围内的点进行噪声点检测,对确定为噪声点的像素点进行中值滤波,其他像 ...

最新文章

  1. JAVA网站full GC监控脚本
  2. 北航计算机考博C语言真题_北京航空航天大学计算机考研:严厉的老父亲,教会你本事,本科非211以上就不要去了...
  3. 三个变量互换值_02-Python基础知识学习-------Python变量
  4. 学习16位DOS汇编笔记
  5. asp.net C# 直接读取或访问其它网站的URL示例
  6. 为什么在2012/2013年我将在新的Enterprise Java项目中继续使用Spring *和* Java EE
  7. LeetCode 167. Two Sum II - Input array is sorted
  8. C#中的文件操作 (一)
  9. 到目前为止,Linux下最完整的Samba服务器配置攻略
  10. IE6 PNG透明终极解决方案
  11. 廖雪峰Java10加密与安全-3摘要算法-3SHA-1算法
  12. 批处理计算n天前\后的日期
  13. Android开发之BUG专讲:入门篇(二)
  14. .Net Standard 2.1对您意味着什么
  15. 1976年图灵奖--米凯尔·拉宾和达纳·斯科特简介
  16. NameError: name ‘d2l‘ is not defined
  17. 解决iOS UITableView分组header悬浮,每个section header上面有一段空白间距
  18. 超详细的VMware虚拟机安装Linux图文教程保姆级
  19. python的数据模型_(一)python 数据模型
  20. Python利用pandas对Ecxel文件以某一列进行去重并保存

热门文章

  1. 手机销售系统(Java源码)
  2. Rstudio Markdown中文输出PDF文件
  3. 软考论文的六大应对策略V1.0
  4. 炫酷!200 行 Python 代码实现马赛克拼图!
  5. 分布式存储基础之kad
  6. 腾讯云服务器SSH远程登录
  7. RGB和RGBA之间的转换 (实用、赞)
  8. 线性规划的简单应用及使用EXCEL求解
  9. 创建并运行 EMR on EKS 集群
  10. 《乌合之众》中的50金句