【OpenCV 例程200篇】93. 噪声模型的直方图

欢迎关注 『OpenCV 例程200篇』 系列,持续更新中
欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中

2. 噪声模型

数字图像中的噪声源主要来自图像获取和传输过程。在获取图像时,光照水平和传感器温度影响图像中的噪声。在传输图像时,传输信道中的干扰对图像产生污染。

2.7 图像噪声小结

上述噪声模型为各种图像噪声的建模提供了有效的工具。例如:

高斯噪声:常用于电子电路及传感器噪声(光照不足和/或高温引起)等因素所导致噪声的建模;

瑞利噪声:常用于距离成像中的噪声建模;

指数噪声和伽马噪声:常用于激光成像中的噪声建模;

冲激噪声:常用于在成像期间的快速瞬变(如开关故障)的噪声建模;

均匀噪声:是对实际情况最基本描述,也是数字图像处理中各种随机数发生器的基础。

例程 9.7:各种噪声模型的直方图分布

# OpenCVdemo09.py
# Demo09 of OpenCV
# 9. 图像复原与重建
# Copyright 2021 Youcans, XUPT
# Crated:2021-01-30    # # 9.7:各种噪声模型的直方图分布img = cv2.imread("../images/Fig0503.tif", 0)  # flags=0 读取为灰度图像mu, sigma = 0.0, 20.0noiseGause = np.random.normal(mu, sigma, img.shape)imgGaussNoise = img + noiseGauseimgGaussNoise = np.uint8(cv2.normalize(imgGaussNoise, None, 0, 255, cv2.NORM_MINMAX))  # 归一化为 [0,255]a = 30.0noiseRayleigh = np.random.rayleigh(a, size=img.shape)imgRayleighNoise = img + noiseRayleighimgRayleighNoise = np.uint8(cv2.normalize(imgRayleighNoise, None, 0, 255, cv2.NORM_MINMAX))  # 归一化为 [0,255]a, b = 10.0, 2.5noiseGamma = np.random.gamma(shape=b, scale=a, size=img.shape)imgGammaNoise = img + noiseGammaimgGammaNoise = np.uint8(cv2.normalize(imgGammaNoise, None, 0, 255, cv2.NORM_MINMAX))  # 归一化为 [0,255]a = 10.0noiseExponent = np.random.exponential(scale=a, size=img.shape)imgExponentNoise = img + noiseExponentimgExponentNoise = np.uint8(cv2.normalize(imgExponentNoise, None, 0, 255, cv2.NORM_MINMAX))  # 归一化为 [0,255]mean, sigma = 10, 100a = 2 * mean - np.sqrt(12 * sigma)  # a = -14.64b = 2 * mean + np.sqrt(12 * sigma)  # b = 54.64noiseUniform = np.random.uniform(a, b, img.shape)imgUniformNoise = img + noiseUniformimgUniformNoise = np.uint8(cv2.normalize(imgUniformNoise, None, 0, 255, cv2.NORM_MINMAX))  # 归一化为 [0,255]ps, pp = 0.05, 0.02mask = np.random.choice((0, 0.5, 1), size=img.shape[:2], p=[pp, (1-ps-pp), ps])imgChoiceNoise = img.copy()imgChoiceNoise[mask==1] = 255imgChoiceNoise[mask==0] = 0plt.figure(figsize=(12, 8))plt.subplot(231), plt.title("Gauss noise")histNP, bins = np.histogram(imgGaussNoise.flatten(), bins=255, range=[0, 255], density=True)plt.bar(bins[:-1], histNP[:])plt.subplot(232), plt.title("Rayleigh noise")histNP, bins = np.histogram(imgRayleighNoise.flatten(), bins=255, range=[0, 255], density=True)plt.bar(bins[:-1], histNP[:])plt.subplot(233), plt.title("Gamma noise")histNP, bins = np.histogram(imgGammaNoise.flatten(), bins=255, range=[0, 255], density=True)plt.bar(bins[:-1], histNP[:])plt.subplot(234), plt.title("Exponential noise")histNP, bins = np.histogram(imgExponentNoise.flatten(), bins=255, range=[0, 255], density=True)plt.bar(bins[:-1], histNP[:])plt.subplot(235), plt.title("Uniform noise")histNP, bins = np.histogram(imgUniformNoise.flatten(), bins=255, range=[0, 255], density=True)plt.bar(bins[:-1], histNP[:])plt.subplot(236), plt.title("Salt-pepper noise")histNP, bins = np.histogram(imgChoiceNoise.flatten(), bins=255, range=[0, 255], density=True)plt.bar(bins[:-1], histNP[:])plt.tight_layout()plt.show()

(本节完)


版权声明:

youcans@xupt 原创作品,转载必须标注原文链接

Copyright 2021 youcans, XUPT

Crated:2022-2-1

欢迎关注 『OpenCV 例程200篇』 系列,持续更新中
欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中

【OpenCV 例程200篇】01. 图像的读取(cv2.imread)
【OpenCV 例程200篇】02. 图像的保存(cv2.imwrite)
【OpenCV 例程200篇】03. 图像的显示(cv2.imshow)
【OpenCV 例程200篇】04. 用 matplotlib 显示图像(plt.imshow)
【OpenCV 例程200篇】05. 图像的属性(np.shape)
【OpenCV 例程200篇】06. 像素的编辑(img.itemset)
【OpenCV 例程200篇】07. 图像的创建(np.zeros)
【OpenCV 例程200篇】08. 图像的复制(np.copy)
【OpenCV 例程200篇】09. 图像的裁剪(cv2.selectROI)
【OpenCV 例程200篇】10. 图像的拼接(np.hstack)
【OpenCV 例程200篇】11. 图像通道的拆分(cv2.split)
【OpenCV 例程200篇】12. 图像通道的合并(cv2.merge)
【OpenCV 例程200篇】13. 图像的加法运算(cv2.add)
【OpenCV 例程200篇】14. 图像与标量相加(cv2.add)
【OpenCV 例程200篇】15. 图像的加权加法(cv2.addWeight)
【OpenCV 例程200篇】16. 不同尺寸的图像加法
【OpenCV 例程200篇】17. 两张图像的渐变切换
【OpenCV 例程200篇】18. 图像的掩模加法
【OpenCV 例程200篇】19. 图像的圆形遮罩
【OpenCV 例程200篇】20. 图像的按位运算
【OpenCV 例程200篇】21. 图像的叠加
【OpenCV 例程200篇】22. 图像添加非中文文字
【OpenCV 例程200篇】23. 图像添加中文文字
【OpenCV 例程200篇】23. 图像添加中文文字
【OpenCV 例程200篇】24. 图像的仿射变换
【OpenCV 例程200篇】25. 图像的平移
【OpenCV 例程200篇】26. 图像的旋转(以原点为中心)
【OpenCV 例程200篇】27. 图像的旋转(以任意点为中心)
【OpenCV 例程200篇】28. 图像的旋转(直角旋转)
【OpenCV 例程200篇】29. 图像的翻转(cv2.flip)
【OpenCV 例程200篇】30. 图像的缩放(cv2.resize)
【OpenCV 例程200篇】31. 图像金字塔(cv2.pyrDown)
【OpenCV 例程200篇】32. 图像的扭变(错切)
【OpenCV 例程200篇】33. 图像的复合变换
【OpenCV 例程200篇】34. 图像的投影变换
【OpenCV 例程200篇】35. 图像的投影变换(边界填充)
【OpenCV 例程200篇】36. 直角坐标与极坐标的转换
【OpenCV 例程200篇】37. 图像的灰度化处理和二值化处理
【OpenCV 例程200篇】38. 图像的反色变换(图像反转)
【OpenCV 例程200篇】39. 图像灰度的线性变换
【OpenCV 例程200篇】40. 图像分段线性灰度变换
【OpenCV 例程200篇】41. 图像的灰度变换(灰度级分层)
【OpenCV 例程200篇】42. 图像的灰度变换(比特平面分层)
【OpenCV 例程200篇】43. 图像的灰度变换(对数变换)
【OpenCV 例程200篇】44. 图像的灰度变换(伽马变换)
【OpenCV 例程200篇】45. 图像的灰度直方图
【OpenCV 例程200篇】46. 直方图均衡化
【OpenCV 例程200篇】47. 图像增强—直方图匹配
【OpenCV 例程200篇】48. 图像增强—彩色直方图匹配
【OpenCV 例程200篇】49. 图像增强—局部直方图处理
【OpenCV 例程200篇】50. 图像增强—直方图统计量图像增强
【OpenCV 例程200篇】51. 图像增强—直方图反向追踪
【OpenCV 例程200篇】52. 图像的相关与卷积运算
【OpenCV 例程200篇】53. Scipy 实现图像二维卷积
【OpenCV 例程200篇】54. OpenCV 实现图像二维卷积
【OpenCV 例程200篇】55. 可分离卷积核
【OpenCV 例程200篇】56. 低通盒式滤波器
【OpenCV 例程200篇】57. 低通高斯滤波器
【OpenCV 例程200篇】58. 非线性滤波—中值滤波
【OpenCV 例程200篇】59. 非线性滤波—双边滤波
【OpenCV 例程200篇】60. 非线性滤波—联合双边滤波
【OpenCV 例程200篇】61. 导向滤波(Guided filter)
【OpenCV 例程200篇】62. 图像锐化——钝化掩蔽
【OpenCV 例程200篇】63. 图像锐化——Laplacian 算子
【OpenCV 例程200篇】64. 图像锐化——Sobel 算子
【OpenCV 例程200篇】65. 图像锐化——Scharr 算子
【OpenCV 例程200篇】66. 图像滤波之低通/高通/带阻/带通
【OpenCV 例程200篇】67. 空间域图像增强的综合应用
【OpenCV 例程200篇】68. 空间域图像增强的综合应用
【OpenCV 例程200篇】69. 连续非周期信号的傅立叶系数
【OpenCV 例程200篇】70. 一维连续函数的傅里叶变换
【OpenCV 例程200篇】71. 连续函数的取样
【OpenCV 例程200篇】72. 一维离散傅里叶变换
【OpenCV 例程200篇】73. 二维连续傅里叶变换
【OpenCV 例程200篇】74. 图像的抗混叠
【OpenCV 例程200篇】75. Numpy 实现图像傅里叶变换
【OpenCV 例程200篇】76. OpenCV 实现图像傅里叶变换
【OpenCV 例程200篇】77. OpenCV 实现快速傅里叶变换
【OpenCV 例程200篇】78. 频率域图像滤波基础
【OpenCV 例程200篇】79. 频率域图像滤波的基本步骤
【OpenCV 例程200篇】80. 频率域图像滤波详细步骤
【OpenCV 例程200篇】81. 频率域高斯低通滤波器
【OpenCV 例程200篇】82. 频率域巴特沃斯低通滤波器
【OpenCV 例程200篇】83. 频率域低通滤波:印刷文本字符修复
【OpenCV 例程200篇】84. 由低通滤波器得到高通滤波器
【OpenCV 例程200篇】85. 频率域高通滤波器的应用
【OpenCV 例程200篇】86. 频率域滤波应用:指纹图像处理
【OpenCV 例程200篇】87. 频率域钝化掩蔽
【OpenCV 例程200篇】88. 频率域拉普拉斯高通滤波
【OpenCV 例程200篇】89. 带阻滤波器的传递函数
【OpenCV 例程200篇】90. 频率域陷波滤波器
【OpenCV 例程200篇】91. 高斯噪声、瑞利噪声、爱尔兰噪声
【OpenCV 例程200篇】92. 指数噪声、均匀噪声、椒盐噪声
【OpenCV 例程200篇】93. 噪声模型的直方图
【OpenCV 例程200篇】94. 算术平均滤波器
【OpenCV 例程200篇】95. 几何均值滤波器
【OpenCV 例程200篇】96. 谐波平均滤波器
【OpenCV 例程200篇】97. 反谐波平均滤波器
【OpenCV 例程200篇】98. 统计排序滤波器
【OpenCV 例程200篇】99. 修正阿尔法均值滤波器
【OpenCV 例程200篇】100. 自适应局部降噪滤波器

【OpenCV 例程200篇】93. 噪声模型的直方图相关推荐

  1. 【OpenCV 例程200篇】49. 图像增强—局部直方图处理

    [OpenCV 例程200篇]49. 图像增强-局部直方图处理 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 图像直 ...

  2. 【OpenCV 例程200篇】48. 图像增强—彩色直方图匹配

    [OpenCV 例程200篇]48. 图像增强-彩色直方图匹配 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 图像直 ...

  3. 【youcans 的 OpenCV 例程200篇】149. 图像分割之边缘模型

    欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中 [youcans 的 OpenCV 例程20 ...

  4. 【youcans 的 OpenCV 例程 200 篇】105. 湍流模糊退化模型

    欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中 [youcans 的 OpenCV 例程 2 ...

  5. 【youcans 的 OpenCV 例程 200 篇】104. 运动模糊退化模型

    欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中 [youcans 的 OpenCV 例程 2 ...

  6. 【OpenCV 例程200篇】92. 指数噪声、均匀噪声、椒盐噪声

    [OpenCV 例程200篇]92. 指数噪声.均匀噪声.椒盐噪声 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 2 ...

  7. 【OpenCV 例程200篇】91. 高斯噪声、瑞利噪声、爱尔兰噪声

    [OpenCV 例程200篇]91. 高斯噪声.瑞利噪声.爱尔兰噪声 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 ...

  8. 【youcans 的 OpenCV 例程200篇】158. 阈值处理之固定阈值法

    欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中 [youcans 的 OpenCV 例程20 ...

  9. 【youcans 的 OpenCV 例程200篇】157. 霍夫变换直线检测

    欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中 [youcans 的 OpenCV 例程20 ...

最新文章

  1. 澳洲专升硕计算机专业,澳洲计算机专升硕-纽卡斯尔大学
  2. 基于pygame实现的飞机大战游戏
  3. Stark 组件:快速开发神器 —— 自动生成 URL
  4. 实现字符串的编码转换,用以解决字符串乱码问题
  5. 风投的钱都从哪里来?
  6. dataframe 上下拼接_pandas DataFrame 的横向纵向拼接组合
  7. mySQL 开启事件存储过程
  8. SQL语句批量替换某个指定的字符串
  9. python排版word文档 效率,【效率工具】用Python根据excel中数据批量生成word文档(适用劳...
  10. 信号计算机联锁试题,计算机联锁试题.doc
  11. html转邮件html格式转换,如何把电子邮件格式改成HTML格式
  12. 进入网站后台,提示HTTP错误404.0-NOtFound
  13. 基于Linux centos7 搭建内网服务器,并通过外网访问
  14. 查看新增串口、USB设备
  15. MES系统多少钱?企业需要什么样的MES系统?
  16. 笔记本电池冲不进电或不存电的修复方法
  17. Java自学之路——构造器(Constructor)
  18. 算法——机器学习——无监督学习—— K均值(K-means)图解动画
  19. BYOD应用的安全性
  20. php软件测试课程资源共享网站

热门文章

  1. 谷歌浏览器如何更改语言
  2. IP地址开启https
  3. 使用Collections.emptyList()生成的List不支持add方法___Java Collections.emptyList方法的使用及注意事项
  4. 详解 Java NIO
  5. JAVA解析存储过程获取的对象_java 解析数据的存储过程的
  6. mysql内置加密函数_MySQL数据库内置加密函数总结
  7. linux查看etl进程,常见ETL工具
  8. java参数传入泛型类型_Java泛型参数界定到任何一个类型的范围
  9. Git初学札记(七)————合并分支(merge)
  10. Java常用设计模式————原型模式(二)之深拷贝与浅拷贝