python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)


Posted in Python onApril 06, 2022

导读:

这篇文章主要介绍如何利用opencv来对图像添加各类噪声,原图:

python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)

1、高斯噪声

高斯噪声就是给图片添加一个服从高斯分布的噪声,可以通过调节高斯分布标准差(sigma)的大小来控制添加噪声程度,sigma越大添加的噪声越多图片损坏的越厉害

#读取图片
img = cv2.imread("demo.png")
#设置高斯分布的均值和方差
mean = 0
#设置高斯分布的标准差
sigma = 25
#根据均值和标准差生成符合高斯分布的噪声
gauss = np.random.normal(mean,sigma,(img_height,img_width,img_channels))
#给图片添加高斯噪声
noisy_img = image + gauss
#设置图片添加高斯噪声之后的像素值的范围
noisy_img = np.clip(noisy_img,a_min=0,a_max=255)
#保存图片
cv2.imwrite("noisy_img.png",noise_img)

python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)

2、椒盐噪声

椒盐噪声就是给图片添加黑白噪点,椒指的是黑色的噪点(0,0,0)盐指的是白色的噪点(255,255,255),通过设置amount来控制添加噪声的比例,值越大添加的噪声越多,图像损坏的更加严重

#读取图片
img = cv2.imread("demo.png")
#设置添加椒盐噪声的数目比例
s_vs_p = 0.5
#设置添加噪声图像像素的数目
amount = 0.04
noisy_img = np.copy(image)
#添加salt噪声
num_salt = np.ceil(amount * image.size * s_vs_p)
#设置添加噪声的坐标位置
coords = [np.random.randint(0,i - 1, int(num_salt)) for i in image.shape]
noisy_img[coords] = 255
#添加pepper噪声
num_pepper = np.ceil(amount * image.size * (1. - s_vs_p))
#设置添加噪声的坐标位置
coords = [np.random.randint(0,i - 1, int(num_pepper)) for i in image.shape]
noisy_img[coords] = 0
#保存图片
cv2.imwrite("noisy_img.png",noise_img)

python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)

3、泊松噪声

#读取图片
img = cv2.imread("demo.png")
#计算图像像素的分布范围
vals = len(np.unique(image))
vals = 2 ** np.ceil(np.log2(vals))
#给图片添加泊松噪声
noisy_img = np.random.poisson(image * vals) / float(vals)
#保存图片
cv2.imwrite("noisy_img.png",noise_img)

python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)

4、speckle噪声

#读取图片
img = cv2.imread("demo.png")
#随机生成一个服从分布的噪声
gauss = np.random.randn(img_height,img_width,img_channels)
#给图片添加speckle噪声
noisy_img = image + image * gauss
#归一化图像的像素值
noisy_img = np.clip(noisy_img,a_min=0,a_max=255)
#保存图片
cv2.imwrite("noisy_img.png",noise_img)

python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)

到此这篇关于python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)的文章就介绍到这了,更多相关python使用opencv内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python里隐藏的“禅”
Jun 16 Python
详解Python中的array数组模块相关使用
Jul 05 Python
Python下实现的RSA加密/解密及签名/验证功能示例
Jul 17 Python
Python实现的排列组合计算操作示例
Oct 13 Python
python利用paramiko连接远程服务器执行命令的方法
Oct 16 Python
Python代码实现KNN算法
Dec 20 Python
在Python中实现shuffle给列表洗牌
Nov 08 Python
pyqt5 实现在别的窗口弹出进度条
Jun 18 Python
Django ValuesQuerySet转json方式
Mar 16 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
Mar 30 Python
Python多线程thread及模块使用实例
Apr 28 Python
详解Python中__new__方法的作用
Mar 31 Python
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
浅谈Python中对象是如何被调用的
Apr 06 #Python
Python实现猜拳与猜数字游戏的方法详解
python字符串的一些常见实用操作
Apr 06 #Python
python中字符串String及其常见操作指南(方法、函数)
Apr 06 #Python
Python Numpy库的超详细教程
进行数据处理的6个 Python 代码块分享
Apr 06 #Python
You might like
thinkphp中多表查询中防止数据重复的sql语句(必看)
2016/09/22 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
jQuery EasyUI API 中文文档 - TimeSpinner时间微调器
2011/10/23 Javascript
JavaScript NodeTree导航栏(菜单项JSON类型/自制)
2013/02/01 Javascript
浅析document.ready和window.onload的区别讲解
2013/12/18 Javascript
jQuery CSS()方法改变现有的CSS样式表
2014/09/09 Javascript
javascript记录文本框内文字个数检测文字个数变化
2014/10/14 Javascript
Javascript字符串浏览器兼容问题分析
2014/12/01 Javascript
浅谈Unicode与JavaScript的发展史
2015/01/19 Javascript
JS组件Bootstrap ContextMenu右键菜单使用方法
2016/04/17 Javascript
js 将input框中的输入自动转化成半角大写(税号输入框)
2017/02/16 Javascript
JavaScript数据结构中栈的应用之表达式求值问题详解
2017/04/11 Javascript
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
JS闭包原理与应用经典示例
2018/12/20 Javascript
jQuery实现鼠标滑动切换图片
2020/05/27 jQuery
[01:03]悬念揭晓 11月26日DOTA2完美盛典不见不散
2017/11/23 DOTA
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
Python+matplotlib实现华丽的文本框演示代码
2018/01/22 Python
JSON文件及Python对JSON文件的读写操作
2018/10/07 Python
pandas.DataFrame删除/选取含有特定数值的行或列实例
2018/11/07 Python
python将字符串转变成dict格式的实现
2019/11/18 Python
Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError
2019/12/20 Python
Pytorch Tensor 输出为txt和mat格式方式
2020/01/03 Python
python里glob模块知识点总结
2021/01/05 Python
HolidayLettings英国:预订最好的度假公寓、别墅和自助式住宿
2019/08/27 全球购物
什么是makefile? 如何编写makefile?
2012/08/08 面试题
建筑工程管理专业自荐信范文
2013/12/28 职场文书
自我评价的写作规则
2014/01/06 职场文书
我们的节日中秋活动方案
2014/08/19 职场文书
学习十八届四中全会精神思想汇报
2014/10/23 职场文书
工人先进事迹材料
2014/12/26 职场文书
户外活动总结
2015/02/04 职场文书
检察院起诉书
2015/05/20 职场文书
紧急迫降观后感
2015/06/15 职场文书
分析MySQL抛出异常的几种常见解决方式
2021/05/18 MySQL
python热力图实现的完整实例
2022/06/25 Python