【OpenCV 例程200篇】95. 几何均值滤波器

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

3. 仅噪声存在的空间滤波图像复原

当一幅图像中唯一存在的退化是噪声时,退化模型简化为:
g(x,y)=f(x,y)+η(x,y)G(u,v)=F(u,v)+N(u,v)g(x,y) = f(x,y) + \eta(x,y) \\ G(u,v) = F(u,v) + N(u,v) g(x,y)=f(x,y)+η(x,y)G(u,v)=F(u,v)+N(u,v)
当仅存在加性随机噪声时,可以采用空间滤波方法来估计原图像 f(x,y)f(x,y)f(x,y),即对退化图像 g(x,y)g(x,y)g(x,y) 去除噪声。

空间滤波方法在《7. 空间域图像滤波》中进行了详细介绍,本章简要讨论空间滤波的降噪性能。

3.2 几何均值滤波器(Geometric mean filter)

使用几何均值滤波器复原图像,复原图像 f^\hat{f}f^​ 在点 (x,y)(x,y)(x,y) 的值是邻域中的像素的几何平均值:
f^(x,y)=[∏(r,c)∈Sxyg(r,c)]1/mn\hat{f}(x,y) = \begin{bmatrix} \prod _{(r,c) \in Sxy} g(r,c) \end{bmatrix} ^{1/mn} f^​(x,y)=[∏(r,c)∈Sxy​g(r,c)​]1/mn
几何均值滤波器实现的平滑与算术平均滤波器相当,但损失的图像细节更少。

例程 9.9:几何均值滤波器

    # 9.9: 几何均值滤波器 (Geometric mean filter)img = cv2.imread("../images/Fig0507b.tif", 0)  # flags=0 读取为灰度图像img_h = img.shape[0]img_w = img.shape[1]# 算术平均滤波 (Arithmentic mean filter)kSize = (3,3)kernalMean = np.ones(kSize, np.float32) / (kSize[0]*kSize[1])  # 生成归一化盒式核imgAriMean = cv2.filter2D(img, -1, kernalMean)# 几何均值滤波器 (Geometric mean filter)m, n = 3, 3order = 1/(m*n)kernalMean = np.ones((m,n), np.float32)  # 生成盒式核hPad = int((m-1) / 2)wPad = int((n-1) / 2)imgPad = np.pad(img.copy(), ((hPad, m-hPad-1), (wPad, n-wPad-1)), mode="edge")imgGeoMean = img.copy()for i in range(hPad, img_h + hPad):for j in range(wPad, img_w + wPad):prod = np.prod(imgPad[i-hPad:i+hPad+1, j-wPad:j+wPad+1]*1.0)imgGeoMean[i-hPad][j-wPad] = np.power(prod, order)plt.figure(figsize=(9, 6))plt.subplot(131), plt.axis('off'), plt.title("Original")plt.imshow(img, cmap='gray', vmin=0, vmax=255)plt.subplot(132), plt.axis('off'), plt.title("Arithmentic mean filter")plt.imshow(imgAriMean, cmap='gray', vmin=0, vmax=255)plt.subplot(133), plt.axis('off'), plt.title("Geometric mean filter")plt.imshow(imgGeoMean, cmap='gray', vmin=0, vmax=255)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篇】95. 几何均值滤波器相关推荐

  1. 【OpenCV 例程200篇】99. 修正阿尔法均值滤波器

    [OpenCV 例程200篇]99. 修正阿尔法均值滤波器 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 3.6 修 ...

  2. 【OpenCV 例程200篇】100. 自适应局部降噪滤波器

    [OpenCV 例程200篇]100. 自适应局部降噪滤波器 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 3.7 ...

  3. 【OpenCV 例程 200篇】98. 统计排序滤波器

    [OpenCV 例程 200篇]98. 统计排序滤波器 欢迎关注 『OpenCV 例程 200 篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 3.5 统 ...

  4. 【OpenCV 例程200篇】97. 反谐波平均滤波器

    [OpenCV 例程200篇]97. 反谐波平均滤波器 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 3. 仅噪声存 ...

  5. 【OpenCV 例程200篇】96. 谐波平均滤波器

    [OpenCV 例程200篇]96. 谐波平均滤波器 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 3. 仅噪声存在 ...

  6. 【OpenCV 例程200篇】94. 算术平均滤波器

    [OpenCV 例程200篇]94. 算术平均滤波器 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 3. 仅噪声存在 ...

  7. 【OpenCV 例程200篇】90. 频率域陷波滤波器

    [OpenCV 例程200篇]90. 频率域陷波滤波器 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 5.2 陷波滤 ...

  8. 【OpenCV 例程200篇】57. 低通高斯滤波器

    [OpenCV 例程200篇]57. 低通高斯滤波器 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 图像滤波是在尽可 ...

  9. 【OpenCV 例程200篇】56. 低通盒式滤波器

    [OpenCV 例程200篇]56. 低通盒式滤波器 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 图像滤波是在尽可 ...

最新文章

  1. RHEL7.2上基于eSpeak实现TTS
  2. [转]Visual Studio 项目类型 GUID 清单
  3. 浅谈auto与decltype函数的区别
  4. c ++递归算法数的计数_C ++程序使用数组中的递归查找数字的最后一次出现
  5. multi-mechanize error: can not find test script: v_user.py问题
  6. 布线管理的设计(一)
  7. 大数据笔试面试问题之分治法解决
  8. 1075. PAT Judge (25)
  9. 《点石成金:访客至上的Web和可用性设计秘笈(原书第3版)》--- 读书笔记
  10. 求助,我在Kell官网上下载的固件库,双击运行后显示错误:Zip integrity check failed.,该怎么解决?
  11. AD7705和压力传感器的计算
  12. 谷歌浏览器http请求出现:Provisional headers are shown 提示
  13. Pentaho报表彻底研究
  14. Scala 继承和特质
  15. 对接海康威视ehome踩过的坑总结
  16. 计算神经科学简介~【整理自】类脑计算背后的计算神经科学框架
  17. 发现一个国外的学习网站
  18. 微会动创始人袁帅:什么是二维码会议服务?
  19. 虚拟环境Vmware下改变Linux(CentOS7)IP地址
  20. 网易云音乐关键字搜索并生成下载url

热门文章

  1. 微信公众号文章中的音乐怎么设置自动播放
  2. 360浏览器怎么添加应用 360安全浏览器应用添加教程
  3. Win11桌面没有图标怎么解决 Win11桌面没有图标解决教程
  4. 无尽包围html5游戏在线玩,小团体激发潜能小游戏突破自我
  5. android自动化测试之robotium初探(三),Android自动化测试之Robotium--基础操作.pdf
  6. Linux中sudo、su和su -命令的区别
  7. MySQL 字段默认值该如何设置
  8. matlab基于dct的图像压缩编码解码_音频压缩编码的基本原理详解
  9. linux装nvidia驱动没有图形界面,[转]Fedora 13下安装Nvidia显卡驱动的方法/Linux无法进入X Windows 图形界面的解决方法...
  10. LeetCode算法入门- 3Sum Closest -day10