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连接池实现示例程序
Nov 26 Python
python脚本设置超时机制系统时间的方法
Feb 21 Python
python利用urllib和urllib2访问http的GET/POST详解
Sep 27 Python
python+selenium识别验证码并登录的示例代码
Dec 21 Python
python实现电子产品商店
Feb 26 Python
Python 的AES加密与解密实现
Jul 09 Python
Python爬虫抓取技术的一些经验
Jul 12 Python
numpy.meshgrid()理解(小结)
Aug 01 Python
Python 爬虫实现增加播客访问量的方法实现
Oct 31 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
Dec 04 Python
python 等差数列末项计算方式
May 03 Python
Anaconda安装pytorch和paddle的方法步骤
Apr 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中显示格式化的用户输入
2006/10/09 PHP
Zend Framework教程之Zend_Layout布局助手详解
2016/03/04 PHP
PHP模糊查询技术实例分析【附源码下载】
2019/03/07 PHP
PHP时间相关常用函数用法示例
2020/06/03 PHP
escape、encodeURI 和 encodeURIComponent 的区别
2009/03/02 Javascript
用JavaScript将从数据库中读取出来的日期型格式化为想要的类型。
2009/08/15 Javascript
当json键为数字时的取值方法解析
2013/11/15 Javascript
js判断登陆用户名及密码是否为空的简单实例
2016/05/16 Javascript
jQuery.Uploadify插件实现带进度条的批量上传功能
2016/06/08 Javascript
vue.js将时间戳转化为日期格式的实现代码
2018/06/05 Javascript
Vue SPA单页应用首屏优化实践
2018/06/28 Javascript
浅析vue-router原理
2018/10/19 Javascript
vue 属性拦截实现双向绑定的实例代码
2018/10/24 Javascript
vue-cli 构建骨架屏的方法示例
2018/11/08 Javascript
详解用JS添加和删除class类名
2019/03/25 Javascript
[31:01]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS Orenda
2014/05/23 DOTA
[15:07]lgd_OG_m2_BP
2019/09/10 DOTA
python list删除元素时要注意的坑点分享
2018/04/18 Python
python实现时间o(1)的最小栈的实例代码
2018/07/23 Python
tensorflow: variable的值与variable.read_value()的值区别详解
2018/07/30 Python
使用Python的toolz库开始函数式编程的方法
2018/11/15 Python
python3.6编写的单元测试示例
2019/08/17 Python
python对验证码降噪的实现示例代码
2019/11/12 Python
python 变量初始化空列表的例子
2019/11/28 Python
Django models文件模型变更错误解决
2020/05/11 Python
CSS3 简单又实用的5个属性
2010/03/04 HTML / CSS
html5中的input新属性range使用记录
2014/09/05 HTML / CSS
html5手机键盘弹出收起的处理
2020/01/20 HTML / CSS
AE美国鹰日本官方网站: American Eagle Outfitters
2016/12/10 全球购物
世界领先的在线地板和建筑材料批发商:BuildDirect
2017/02/26 全球购物
文秘自荐信
2013/10/20 职场文书
村官工作鉴定评语
2014/01/27 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
党的群众路线教育实践活动个人整改措施
2014/10/27 职场文书
出差报告范文
2014/11/06 职场文书
Pygame游戏开发之太空射击实战敌人精灵篇
2022/08/05 Python