当前位置:   article > 正文

图像降噪算法 BM3D 介绍

bm3d

介绍

BM3D 是 “Block-Matching and 3D Filtering” 的缩写,即三维块匹配滤波,它是一种用于图像去噪的算法。该算法来源于 一篇“Image and video denoising by sparse 3D transform-domain collaborative filtering”的高质量文章,文章的作者是 Kostadin Dabov、Alessandro Foi、Vladimir Katkovnik 和 Karen Egiazarian,发表在 IEEE Transactions on Image Processing 2007年9月刊上。

BM3D 算法基于两个主要步骤:块匹配(Block-Matching)三维变换滤波(3D Filtering)。这种算法在图像处理领域非常著名,因为它能够有效地去除图像中的噪声,同时保留图像的细节。

BM3D 算法已经有很多的衍生版,比如CBM3D彩图、VBM3D时域、BM4D、CBM4D。
在这里插入图片描述

原理

该算法框图如下,中心思想充分利用自然图像中丰富的自相似结构来进行图像降噪;主要分为两步,第一部基础估计;第二步最终估计,使用基本估计,执行改进的分组和协作维纳过滤。
在这里插入图片描述

  1. 基础估计:
  • 基于块的估计。对于噪声图像中的每个块,执行以下操作:
    • i) 分组。找到与当前处理的块相似的块,然后将它们堆叠在一个3D数组(组)中。
    • ii) 协同硬阈值化。对形成的组应用3D变换,通过对变换系数进行硬阈值化来衰减噪声,反转3D变换以产生所有分组块的估计,并将块的估计返回到其原始位置。
  • 聚合。对所有重叠的分块估计值进行加权平均,计算真实图像的基本估计值。
  1. 最终维纳估计:
    • 基于块的估计。对于噪声图像中的每个块,执行以下操作:
      • 块匹配Grouping。在基本估计中使用BM找到与当前处理的块相似的块的位置。利用这些位置,形成两组(3D数组),一组来自噪声图像,一组来自基本估计。
      • 3D协同维纳滤波 Collaborative Filtering。对两个组应用3D变换。使用基本估计的能量谱作为真实(导频)能量谱对有噪声的进行维纳滤波。通过对滤波后的变换系数应用3D逆变换产生所有分组块的估计,并将块的估计返回到其原始位置。
    • 聚合加权滤波Aggregation。通过使用加权平均值聚合所有获得的局部估计,计算真实图像的最终估计。

结果展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码示例

git 上开源的 c++实现 BM3D 算法示例,作者gfacciol,可参考代码研究算法具体实现。
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/663981
推荐阅读
相关标签
  

闽ICP备14008679号