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 快速实现CLI 应用程序的脚手架
Dec 05 Python
Python异常对代码运行性能的影响实例解析
Feb 08 Python
Python统计单词出现的次数
Apr 04 Python
Pandas 同元素多列去重的实例
Jul 03 Python
python实现文本界面网络聊天室
Dec 12 Python
Django ImageFiled上传照片并显示的方法
Jul 28 Python
Python3显示当前时间、计算时间差及时间加减法示例代码
Sep 07 Python
django创建超级用户过程解析
Sep 18 Python
Python hmac模块使用实例解析
Dec 24 Python
Python爬虫HTPP请求方法有哪些
Jun 03 Python
记录一下scrapy中settings的一些配置小结
Sep 28 Python
python办公自动化之excel的操作
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图片库imagemagick安装方法
2014/09/23 PHP
PHP中file_put_contents追加和换行的实现方法
2017/04/01 PHP
Javascript面向对象扩展库代码分享
2012/03/27 Javascript
JavaScript中使用Object.prototype.toString判断是否为数组
2015/04/01 Javascript
在Ubuntu系统上安装Node.JS的教程
2015/10/15 Javascript
jquery实现加载进度条提示效果
2015/11/23 Javascript
详解前端构建工具gulpjs的使用介绍及技巧
2017/01/19 Javascript
jQuery插件FusionCharts实现的3D柱状图效果实例【附demo源码下载】
2017/03/03 Javascript
node.js中EJS 模板快速入门教程
2017/05/08 Javascript
requirejs按需加载angularjs文件实例
2017/06/08 Javascript
js图片上传的封装代码
2017/08/01 Javascript
JS中使用media实现响应式布局
2017/08/04 Javascript
解决Angular4项目部署到服务器上刷新404的问题
2018/08/31 Javascript
解决vue同一slot在组件中渲染多次的问题
2018/09/06 Javascript
Vue 实现手动刷新组件的方法
2019/02/19 Javascript
Python3实现从指定路径查找文件的方法
2015/05/22 Python
python删除过期文件的方法
2015/05/29 Python
python选择排序算法实例总结
2015/07/01 Python
浅谈Python实现Apriori算法介绍
2017/12/20 Python
解决PySide+Python子线程更新UI线程的问题
2019/01/11 Python
python3+PyQt5 创建多线程网络应用-TCP客户端和TCP服务器实例
2019/06/17 Python
python利用openpyxl拆分多个工作表的工作簿的方法
2019/09/27 Python
pandas使用之宽表变窄表的实现
2020/04/12 Python
解决keras backend 越跑越慢问题
2020/06/18 Python
一文带你了解Python 四种常见基础爬虫方法介绍
2020/12/04 Python
CSS3贝塞尔曲线示例:创建链接悬停动画效果
2020/11/19 HTML / CSS
三只松鼠官方旗舰店:全网坚果销售第1
2017/11/25 全球购物
NBA欧洲商店(英国):NBA Europe Store UK
2018/07/27 全球购物
Omio中国:全欧洲低价大巴、火车和航班搜索和比价
2018/08/09 全球购物
Java面试题:说出如下代码的执行结果
2015/10/30 面试题
高职教师岗位职责
2013/12/24 职场文书
房屋改造计划书
2014/01/10 职场文书
酒店大堂副理的职责范文
2014/02/13 职场文书
中学教师师德承诺书
2014/05/23 职场文书
中国合伙人观后感
2015/06/02 职场文书
Python 正则模块详情
2021/11/02 Python