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打开网页和暂停实例
Sep 30 Python
Python爬虫之xlml解析库(全面了解)
Aug 08 Python
在Python的一段程序中如何使用多次事件循环详解
Sep 07 Python
Python自动化运维_文件内容差异对比分析
Dec 13 Python
Django Web开发中django-debug-toolbar的配置以及使用
May 06 Python
详解Python如何生成词云的方法
Jun 01 Python
Python从入门到精通之环境搭建教程图解
Sep 26 Python
Django 自动生成api接口文档教程
Nov 19 Python
TensorFlow查看输入节点和输出节点名称方式
Jan 04 Python
使用python脚本自动生成K8S-YAML的方法示例
Jul 12 Python
vscode配置anaconda3的方法步骤
Aug 08 Python
详解python第三方库的安装、PyInstaller库、random库
Mar 03 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
php简单smarty入门程序实例
2015/06/11 PHP
PHP+Mysql无刷新问答评论系统(源码)
2016/12/20 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
Yii框架学习笔记之session与cookie简单操作示例
2019/04/30 PHP
妙用Jquery的val()方法
2012/06/27 Javascript
js实现获取焦点后光标在字符串后
2014/09/17 Javascript
javascript实现在下拉列表中显示多级树形菜单的方法
2015/08/12 Javascript
AngularJs bootstrap详解及示例代码
2016/09/01 Javascript
jQuery动态生成Bootstrap表格
2016/11/01 Javascript
EasyUI折叠表格层次显示detailview详解及实例
2016/12/28 Javascript
教你用十行node.js代码读取docx的文本
2017/03/08 Javascript
vuex中的 mapState,mapGetters,mapActions,mapMutations 的使用
2018/04/13 Javascript
layui下拉列表select实现可输入查找的方法
2019/09/28 Javascript
利用js实现简易红绿灯
2020/10/15 Javascript
vue element-ul实现展开和收起功能的实例代码
2020/11/25 Vue.js
[02:13] 完美世界DOTA2联赛PWL DAY5集锦
2020/11/03 DOTA
Django中处理出错页面的方法
2015/07/15 Python
python安装cx_Oracle模块常见问题与解决方法
2017/02/21 Python
python 根据时间来生成唯一的字符串方法
2019/01/14 Python
Python实现去除列表中重复元素的方法总结【7种方法】
2019/02/16 Python
Django 源码WSGI剖析过程详解
2019/08/05 Python
tensorflow使用freeze_graph.py将ckpt转为pb文件的方法
2020/04/22 Python
英国领先的品牌珠宝和配件供应商:Acotis Jewellery
2018/03/07 全球购物
Nip + Fab官网:英国美容品牌
2019/08/26 全球购物
多媒体编辑专业毕业生推荐信
2013/11/05 职场文书
数控专业应届生求职信
2013/11/27 职场文书
学生党员的自我评价范文
2014/03/01 职场文书
学校创先争优活动总结
2014/08/28 职场文书
2014年党员整改措施
2014/10/24 职场文书
学习普通话的体会
2014/11/07 职场文书
公司感谢信范文
2015/01/22 职场文书
公务员个人年终总结
2015/02/12 职场文书
青涩记忆观后感
2015/06/18 职场文书
成本低的5个创业项目:投资小、赚钱快
2019/08/20 职场文书
vue实现简单数据双向绑定
2021/04/28 Vue.js
关于CSS浮动与取消浮动的问题
2021/06/28 HTML / CSS