图像在获取或者传输过程中会受到随机信号的干扰而产生噪声, 例如电阻引起的热噪声、光子
噪声、暗电流噪声 以及光响应非均匀性噪声等.由于图像噪声会妨碍人们对图像的理解以及后缕
的处理工作 因此去除噪声的影响在图像处理中具有十分重要的作用.图像中常见的噪声主要有4
种,分别是高斯噪声、椒盐噪声、泊松噪声和乘性噪声.要去除噪声,首先需要了解噪声的产生原
因及特性.

1:椒盐噪声:

椒盐噪声又称作脉冲噪声,它会随机改变图像中的像素值,是由相机成像、图像传输、解码处
理等过程产生的黑白相间的亮暗点噪声 其样子就像在图像上随机地撒上一些盐粒和黑椒粮,因此
被称为椒盐噪声.到目前为止 OpenCV4 中还没有提供专用于为图像添加椒盐噪声的函数,需要使用者根据自己的需求编写生成椒盐噪声的程序。
利用随机数函数生成椒盐噪声:
代码:
void visionagin::SaltandPeper(Mat& img, int n)
{for (int k = 0; k < n; ++k){int i = rand() % img.cols;int j = rand() % img.rows;int white_or_black = rand() % 2;//根据随机数奇偶决定添加黑噪声还是白噪声if (white_or_black == 0)//偶数添加白噪声{if (img.type() == CV_8UC1)//单通道{img.at<uchar>(j, i) = 255;//几行几列矩阵,j,i}else if(img.type() == CV_8UC3){img.at<Vec3b>(j, i)[0] = 255;img.at<Vec3b>(j, i)[1] = 255;img.at<Vec3b>(j, i)[2] = 255;}}else//添加黑噪声{if (img.type() == CV_8UC1)//单通道{img.at<uchar>(j, i) = 0;//几行几列矩阵,j,i}else if (img.type() == CV_8UC3){img.at<Vec3b>(j, i)[0] = 0;img.at<Vec3b>(j, i)[1] = 0;img.at<Vec3b>(j, i)[2] =0;}}}imshow("添加噪声后", img);imwrite("C:\\Users\\86176\\Downloads\\visionimage\\salt.jpeg",img);}

输出:

2:高斯噪声:

高斯噪声是指噪声分布的概率密度函数服从高斯分布(正态分布)的一类噪声,其产生的主要
原因是相机在拍摄时视场较暗且亮度不均匀。相机长时间工作使得温度过高同样会引起高斯噪声
另外,电路元器件自身噪声和互相影响也是造成高斯噪声的重要原因之一。
fill() 函数,可以产生均匀分布或者高斯分布(正态分布 〉的随机数 可以利用该函数产生
符合高斯分布的随机数,之后在图像中加入这些随机数即可.

代码:

void visionagin::Gaussnoiseadd(Mat& img)
{Mat Gaussnoise = Mat::zeros(img.size(), img.type());RNG rng;rng.fill(Gaussnoise, RNG::NORMAL, 10, 20);//生成高斯分布函数imshow("gausss分布", Gaussnoise);img += Gaussnoise;//将高斯噪声添加到原图像imshow("gauss噪声图像", img);imwrite("C:\\Users\\86176\\Downloads\\visionimage\\gauss.jpeg", img);
}

结果:

day14:噪声的种类与生成相关推荐

  1. 【OpenCV 4开发详解】图像噪声的种类与生成

    本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...

  2. PcGAN:一种用于一次学习的噪声鲁棒条件生成对抗网络∗

    简 介: 在本文中,我们为智能交通系统提出了一种基于条件生成对抗网络的新型交通标志分类方法.所提出的 PcGAN是一个端到端网络,网络框架包含交替更新模块,即数据重建模块和退化生成模块,以及用于退化消 ...

  3. matlab冲击噪声,如何用MATLAB生成噪声和冲击混合信号

    刚接触MATLAB,想请教老师们,如何编写一个噪声和冲击的模拟信号,还有关于共振解调的程序想请专业人士帮看看哪里有问题 fs = 10^6;%采样频率 N=4096;%采样长度 t=(0:N-1)/f ...

  4. 【OpenCV 4开发详解】分割图像——分水岭法

    本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...

  5. 【OpenCV 4开发详解】分割图像——Mean-Shift分割算法

    本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...

  6. 【OpenCV 4开发详解】分割图像——Grabcut图像分割

    本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...

  7. 【OpenCV 4开发详解】漫水填充法

    本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...

  8. 【OpenCV 4开发详解】点集拟合

    本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...

  9. 【OpenCV 4开发详解】轮廓外接多边形

    本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...

最新文章

  1. 【底层原理】四位计算机的原理及其实现
  2. redis3.2的安装和使用
  3. java 银联支付反馈,微信支付/支付宝支付/银联支付,对比加总结(Java服务端)
  4. 【计算机网络】ISO/OSI模型
  5. python 经典100例(1-20)
  6. Django 模板层
  7. [JBoss] JNDI与JBossNS
  8. html实现开关,使用纯css实现开关效果
  9. matlab Kmeans算法
  10. 图像处理之对BMP图片的认识
  11. word目录缩进设置
  12. grep、cut、sed、awk
  13. PhotoShop软件笔记
  14. Mysql中索引相关问题
  15. js获取视频长度的3种方法
  16. linux yum zlib安装,Centos升级zlib库导致yum运行错误
  17. (10月25日)云服务器搭建青龙面板保姆级教程
  18. 风洞实验可以用计算机模拟吗,CFD数值风洞模拟
  19. 《O2P卸甲笔记》附录:Oracle XE快速安装
  20. ImageJ工具的使用

热门文章

  1. 【永久免费】恕我直言,这款视频转字符画动漫小工具用起来最爽~
  2. 优化(3)——遮罩Mask,RectMask2D
  3. 苹果x面容id不可用是什么原因_iPhone X使用体验!苹果手机那么保值是有原因的...
  4. 不错的Python社区
  5. 制作学术PPT和演讲的要点
  6. QT5.15使用VISA接口连接GPIB设备和USB设备
  7. matlab用arch模型算隐含波动率,期权定价中的隐含波动率是用来衡量【基于MATLAB的欧式期权定价与隐含波动率应用】...
  8. 开源版本的《植物大战僵尸》
  9. qt系列文章之激光雷达通信
  10. 关于程明明老师的BING一点自我看法——加速