BM3D
概述
BM3D(Block-matching and 3D filtering)通过相似判定找到与参考块相近的二维图像块,并将相似块按照组合成三维群组,对三维群组进行协同滤波处理,再将处理结果聚合到原图像块的位置。该算法的思量和NL-Means优点类似,也是在图像中寻找相似块的方法进行滤波,但是相对于NL-Means要复杂很多。
算法步骤
总体可以分成两步:
- 步骤1:基础估计。
- 按块估计。对于带噪声图像中的每一个块,做以下的操作:
- 分组 。找到和当前处理的块相似的所有块,并堆叠成一个三维数组。
- 协同硬阈值。对于形成的组应用三维变换,通过硬阈值变换系数减弱噪声,再进行三维反变换得到所有分组的块的估计,并将它们返回到最初的位置。
- 聚合。按块对所有获得的重叠块估计进行加权平均,计算出真实图像的基础估计。
- 按块估计。对于带噪声图像中的每一个块,做以下的操作:
- 步骤2:最终估计。使用基础估计,进行改进的分组操作和协同维纳滤波。
- 块估计。对于每一个块。做以下的操作:
- 分组。在得到的基础估计中使用BM(块匹配)找到和当前所有处理的块相似的所有块的位置。使用这些位置形成两个三位数组,一个来自于带噪声图像,一个来自于基础估计。
- 协同维纳滤波。对两个分组应用三维变换。使用基础估计的能量谱作为真实的能量谱对带噪图像进行维纳滤波。对滤波过的三维系数执行三维反变换的的鳌所有分组块的估计并将这些块估计放回到它们原来的位置。
- 聚合。使用加权平均对所有得到的局部估计进行聚合,计算出真实图像的最终估计。
- 块估计。对于每一个块。做以下的操作:
步骤二的两个重要动机:
- 使用基础估计而不是带噪图像可以改善通过块匹配得到的分组;
- 为经验维纳滤波使用基础估计作为领航信号相对于使用带噪数据的三维谱的简单硬阈值更加有效和精确。