图像在获取或者传输过程中会受到随机信号的干扰而产生噪声, 例如电阻引起的热噪声、光子
噪声、暗电流噪声 以及光响应非均匀性噪声等.由于图像噪声会妨碍人们对图像的理解以及后缕
的处理工作 因此去除噪声的影响在图像处理中具有十分重要的作用.图像中常见的噪声主要有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. CENTOS下SAMBA服务不能开启的解决方法
  2. AVL树和红黑树区别
  3. 按钮滑动隐藏,停止滑动显示的动画
  4. Vector和ArrayList区别
  5. Mongodb 故障分享 初始化时errmsg : exception: new file allocation failure 并且长时间处于STARTUP2...
  6. 01 | 研发工程师想提升面试竞争力,该具备这三个技术认知
  7. 数据--第45课 - 最短路径
  8. perl语言入门(1)标量数据
  9. Spring Aop 的配置与运用
  10. UEFI shell - 标准应用程序的编译和加载过程
  11. 计算机里电子 邮件格式,邮箱格式怎么写?
  12. 第61篇:合并多个工作薄的所有工作表
  13. 【微信篇】电脑版微信的照片视频文件位置变化
  14. C#多摄像头切换调用,并扫描二维码
  15. Zookeeper(2) - 配置详解与启动原理
  16. 7-298 sdut-C语言实验-众数7-299 sdut-C语言实验-求一个3*3矩阵对角线元素之和
  17. 网络协议:HTTP的升级改进
  18. 倍福控制第三方伺服走CSV模式--以汇川伺服为例
  19. 《医院管理系统》项目研发总结
  20. python 推导式

热门文章

  1. Pacemaker 安装与配置
  2. 3D连连看:3D Logic
  3. 偶给老萌发奖状^_^
  4. 学习笔记——网站搭建基础知识
  5. Python知识点以及相关练习题(四万余字总结)期末Python知识点总结
  6. python计算器小程序源码_python编写计算器程序-python代码编写计算器小程序
  7. 【论文总结】:基于密集点检测的anchor-free算法总结
  8. USB 高清视频采集芯片HDMI转USB2.0
  9. 微信开发者工具项目wap.php,微信web开发者工具
  10. java list转set用法