博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何正确地给图像添加高斯噪声
阅读量:6905 次
发布时间:2019-06-27

本文共 788 字,大约阅读时间需要 2 分钟。

高斯噪声是一个均值为 0 方差为 \sigma_n^2 的正态分布,是一个加性噪声。但要正确地给图片添加高斯噪声,还要取决于程序中读入图片的数据格式。

如果图片的数据格式为 uint8,也即数据的范围为 [0, 255],那么直接生成对应方差的噪声,然后加到图片上去。

# clean_image uint8 (128, 128)noise_image = clean_image + np.random.randn(128, 128) * sigma复制代码

此处 np.random.rand(128, 128) 生成一个均值为 0 方差为 1 的正态分布,然后我们乘以 \sigma_n,将方差调整到 \sigma_n^2,再加到图片上即可。

如果图片的数据格式为浮点型,而且数据的范围为 [0, 1],那么我们需要对噪声的方差做一些调整,真正加到图片上的噪声方差应该为 \sigma_{real}^2 = \frac{\sigma_n^2}{255^2},也即 \sigma_{real} = \frac{\sigma_n}{255}

# clean_image float32 (128, 128)noise_image = clean_image + np.random.randn(128, 128) * sigma / 255复制代码

此处 np.random.rand(128, 128) 生成一个均值为 0 方差为 1 的正态分布,然后我们乘以 \sigma_n / 255,将真实方差调整到 \sigma_n^2,再加到图片上即可。

在 MATLAB 中,imnoise 会对图片进行处理,将像素值缩放到 [0, 1] 之间,因此我们在传入方差的时候也必须要先进行调整。

noise_image = imnoise(clean_image, 'gaussian', 0, sigma^2/255^2)复制代码

有时候,我们真的需要对知识抱有敬畏之心,任何一个小的知识点都没有那么简单。但如果你在这些小的知识点上犯了小错误,后果却是不可想象的。千里之堤毁于蚁穴,与君共勉!

获取更多精彩,请关注「seniusen」!

转载地址:http://gkqdl.baihongyu.com/

你可能感兴趣的文章
20180504早课记录03-Linux
查看>>
11.交换路由远程管理
查看>>
GIT命令
查看>>
java企业级框架 SpringMVC_mybatis or hibernate
查看>>
Linux中iptables设置详细
查看>>
【安全牛学习笔记】主动信息收集 - 发现
查看>>
Ubuntu配置SNMP/安装SNMP
查看>>
rip路由协议基本配置
查看>>
守护进程 python
查看>>
搭建FTP
查看>>
Entity Framework 的事务 DbTransaction
查看>>
Java Service Wrapper简介与使用(转)
查看>>
马哥学习----李洋个人笔记-----rpm包管理器
查看>>
Apache与Nginx的优缺点比较
查看>>
【Linux】Install Redis on Centos
查看>>
keepalived主备节点都配置vip,vip切换异常案例分析
查看>>
Redis的哨兵(sentinel)(概念)
查看>>
[收藏]据说不错的“FCKeditor 2.6 精简版”下载
查看>>
插入排序—直接插入排序
查看>>
JEPLUS工作流之判断流程——JEPLUS软件快速开发平台
查看>>