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正常时间和unix时间戳相互转换的方法
Apr 23 Python
解决python2.7用pip安装包时出现错误的问题
Jan 23 Python
python基础学习之如何对元组各个元素进行命名详解
Jul 12 Python
python reverse反转部分数组的实例
Dec 13 Python
Python使用字典的嵌套功能详解
Feb 27 Python
python实现海螺图片的方法示例
May 12 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
Sep 29 Python
python设置环境变量的作用整理
Feb 17 Python
pyqt5 QlistView列表显示的实现示例
Mar 24 Python
python db类用法说明
Jul 07 Python
django使用多个数据库的方法实例
Mar 04 Python
python爬虫之selenium库的安装及使用教程
May 23 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+jQuery.uploadify实现文件上传教程
2014/12/26 PHP
详解PHP处理密码的几种方式
2016/11/30 PHP
javascript下function声明一些小结
2007/12/28 Javascript
JQuery为textarea添加maxlength属性的代码
2010/04/07 Javascript
js 动态文字滚动的例子
2011/01/17 Javascript
JavaScript中的noscript元素属性位置及作用介绍
2013/04/11 Javascript
js中return false(阻止)的用法
2013/08/14 Javascript
Jquery Post处理后不进入回调的原因及解决方法
2014/07/15 Javascript
总结jQuery插件开发中的一些要点
2016/05/16 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
2016/05/24 Javascript
JavaScript SHA512加密算法详细代码
2016/10/06 Javascript
BootStrap tab选项卡使用小结
2020/08/09 Javascript
利用fecha进行JS日期处理
2016/11/21 Javascript
使用ionic在首页新闻中应用到的跑马灯效果的实现方法
2017/02/13 Javascript
Node.js 实现简单的接口服务器的实例代码
2017/05/23 Javascript
jQuery中将json数据显示到页面表格的方法
2018/05/27 jQuery
微信小程序用户授权,以及判断登录是否过期的方法
2019/05/10 Javascript
[33:39]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第二局
2016/02/27 DOTA
对numpy中shape的深入理解
2018/06/15 Python
对python操作kafka写入json数据的简单demo分享
2018/12/27 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
2019/01/29 Python
Python创建字典的八种方式
2019/02/27 Python
Python3.5运算符操作实例详解
2019/04/25 Python
Pytorch训练过程出现nan的解决方式
2020/01/02 Python
django使用F方法更新一个对象多个对象字段的实现
2020/03/28 Python
python topk()函数求最大和最小值实例
2020/04/02 Python
Python logging日志模块 配置文件方式
2020/07/12 Python
python实现数字炸弹游戏程序
2020/07/17 Python
python热力图实现简单方法
2021/01/29 Python
前台接待岗位职责
2013/12/03 职场文书
房屋分割离婚协议书范本
2014/12/01 职场文书
财务会计求职信范文
2015/03/20 职场文书
《只有一个地球》教学反思
2016/02/16 职场文书
创业计划书之少年玩具店
2019/09/05 职场文书
pycharm 如何查看某一函数源码的快捷键
2021/05/12 Python
python基础之文件操作
2021/10/24 Python