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中的数据类型
May 05 Python
详解Django通用视图中的函数包装
Jul 21 Python
Python队列的定义与使用方法示例
Jun 24 Python
简单学习Python多进程Multiprocessing
Aug 29 Python
基于MTCNN/TensorFlow实现人脸检测
May 24 Python
用Python shell简化开发
Aug 08 Python
详解Python下载图片并保存本地的两种方式
May 15 Python
Python中Numpy ndarray的使用详解
May 24 Python
python flask框架实现传数据到js的方法分析
Jun 11 Python
python 按钮点击关闭窗口的实现
Mar 04 Python
Numpy 多维数据数组的实现
Jun 18 Python
Numpy中np.random.rand()和np.random.randn() 用法和区别详解
Oct 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 程式大小
2006/12/06 PHP
PHP中通过加号合并数组的一个简单方法分享
2011/01/27 PHP
php获取网页标题和内容函数(不包含html标签)
2014/02/03 PHP
js的逻辑运算符 ||
2010/05/31 Javascript
Ajax执行顺序流程及回调问题分析
2012/12/10 Javascript
js获取滚动距离的方法
2015/05/30 Javascript
jquery实现向下滑出的二级导航下滑菜单效果
2015/08/25 Javascript
jQuery对html元素的取值与赋值实例详解
2015/12/18 Javascript
JavaScript自定义分页样式
2017/01/17 Javascript
微信小程序实现顶部普通选项卡效果(非swiper)
2020/06/19 Javascript
微信小程序中setInterval的使用方法
2017/09/29 Javascript
基于对象合并功能的实现示例
2017/10/10 Javascript
vue的全局提示框组件实例代码
2018/02/26 Javascript
vue的过滤器filter实例详解
2018/09/17 Javascript
基于three.js实现的3D粒子动效实例代码
2019/04/09 Javascript
angular6开发steps步骤条组件
2019/07/04 Javascript
vue 获取及修改store.js里的公共变量实例
2019/11/06 Javascript
Javascript查看大图功能代码实现
2020/05/07 Javascript
[01:04:39]OG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
[55:54]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python 字符串格式化代码
2013/03/17 Python
Python控制多进程与多线程并发数总结
2016/10/26 Python
python处理excel绘制雷达图
2019/10/18 Python
pandas DataFrame 数据选取,修改,切片的实现
2020/04/24 Python
Python实现一个优先级队列的方法
2020/07/31 Python
python tkinter实现下载进度条及抖音视频去水印原理
2021/02/07 Python
使用HTML5中的contentEditable来将多行文本自动增高
2016/03/01 HTML / CSS
eharmony澳大利亚:网上约会服务
2020/02/29 全球购物
介绍下Java的输入输出流
2014/01/22 面试题
男方父母婚礼答谢词
2014/01/25 职场文书
小学教师国培感言
2014/02/08 职场文书
酒店管理专业毕业生求职自荐信
2014/04/28 职场文书
招标授权委托书样本
2014/09/23 职场文书
处世之道:关于真诚相待的名言推荐
2019/12/02 职场文书
Go语言带缓冲的通道实现
2021/04/26 Golang
windows10声卡驱动怎么安装?win10声卡驱动安装操作步骤教程
2022/08/05 数码科技