BM3D--Image Denoising by Sparse 3-D Transform-Domain Collaborative Filtering

news2024/11/15 23:47:40

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 稀疏三维变换域协同滤波图像去噪
    • 摘要
    • 1 引言
    • 2 分组和协作过滤
      • A.分组
      • B.按匹配分组
      • C.协同过滤
      • D.基于变换域收缩的协同过滤
    • 3 算法
    • 结论


前言

论文地址 如果下载不了可以从 https://download.csdn.net/download/m0_70420861/89708940 获取

参考博客 :图像去噪算法:NL-Means和BM3D


稀疏三维变换域协同滤波图像去噪

摘要

我们提出了一种基于变换域稀疏表示增强的新型图像去噪策略(1)通过将相似的二维图像片段(如块)分组到三维数据数组中(我们称之为“组”),实现了稀疏性的增强(2)。协同滤波是一种针对这些三维组开发的特殊过程,包括三个连续步骤:对组进行三维变换、对变换谱进行收缩处理,以及进行逆三维变换(3)。结果是一个三维估计,由联合滤波后的分组图像块组成(4)。通过衰减噪声,协同滤波可以揭示出分组块之间共享的最细微细节,同时保留每个单独块的基本独特特征。之后,将滤波后的块返回其原始位置。由于这些块是重叠的,因此每个像素都会得到多个不同的估计,需要通过聚合过程来利用这种冗余(5)通过特别开发的协同维纳滤波,可以显著提高性能(6)。本文详细介绍了基于这种新型去噪策略的算法及其高效实现,并开发了扩展至彩色图像去噪的方法。实验结果表明,该算法在计算上具有可扩展性,在去噪性能方面达到了最先进水平,无论是从峰值信噪比还是主观视觉质量方面来看均是如此。

(1)变换域是信号或图像在特定数学变换下的表示空间。这种变换可以是线性的,也可以是非线性的,旨在将信号或图像从一种难以直接处理的形式转换为另一种更易于分析或处理的形式。
常见变换域
在信号处理和图像处理中,常见的变换域包括:
频域:通过傅里叶变换(Fourier Transform)将信号或图像从时间或空间域转换到频率域。在频率域中,信号或图像被分解为不同频率的正弦波分量,便于分析信号的频率成分和特性。
小波域:小波变换(Wavelet Transform)将信号或图像分解成不同尺度和不同位置的小波系数。小波变换具有多分辨率分析的能力,能够更好地提取信号或图像的特征和细节,广泛应用于图像去噪、增强和分割等领域。
离散余弦变换域:离散余弦变换(Discrete Cosine Transform, DCT)是一种专门用于图像压缩的变换方法。它将图像从空间域转换到DCT域,通过只保留一部分重要的系数来实现图像的压缩。
M3D(Block-Matching and 3D filtering)算法中的“变换域”指的是对图像块进行某种数学变换后得到的表示空间。具体来说,BM3D算法通过以下步骤利用变换域进行图像去噪:
块匹配与分组:首先,算法对输入的噪声图像进行分块处理,选取一些参考块,并在一定范围内搜索与之相似的块。这些相似的块被分组到一起,形成一个三维数组(或称为“组”)。这一步骤利用了图像中的非局部自相似性,即图像中往往存在许多相似或重复的结构。
变换域处理:接下来,对分组后的三维数组进行某种数学变换,如三维离散余弦变换(3D DCT)或三维小波变换等。这种变换的目的是将图像块从空间域转换到变换域,以便在变换域中更容易地分离信号和噪声。在变换域中,信号通常表现为较大的系数,而噪声则表现为广泛分布的小系数。
协同滤波:在变换域中,对变换系数进行协同滤波处理。这一步骤通常包括硬阈值滤波、软阈值滤波或维纳滤波等方法,旨在去除噪声系数并保留信号系数。通过设定适当的阈值,可以去除大部分噪声,同时尽量保留图像的结构和细节。
逆变换与聚合:经过协同滤波处理后,将变换系数进行逆变换,以恢复出滤波后的图像块。由于每个像素点可能包含在多个重叠的图像块中,因此需要对这些重叠的图像块进行聚合处理,以得到最终的去噪图像。聚合处理通常采用加权平均的方法,以确保去噪图像在视觉上更加平滑和自然。

(2)稀疏性(Sparsity)它主要指的是数据或信号在某种表示下,大部分元素为零或接近于零,只有少数元素具有显著的非零值。这种特性使得数据或信号在表示上更加简洁,便于存储、传输和处理。
具体来说,在信号处理领域,稀疏性常常与信号的变换域表示相关联。例如,一个时域信号在频域中可能表现出稀疏性,即大部分频率分量的能量接近于零,只有少数几个频率分量具有显著的能量。这种稀疏性使得信号压缩、去噪等任务变得更加容易。

分组相似性:将相似的二维图像块分组到一起,这些块在内容或结构上具有高度的相似性。这种相似性意味着在变换域中,这些块的表示可能共享一些主要的特征或模式,而其他非主要特征则相对较弱。
三维变换的稀疏性:对分组后的三维数据数组执行变换(如三维小波变换、三维DCT变换等),由于组内块之间的相似性,变换后的系数在三维空间中会呈现出更强的稀疏性。即,大部分变换系数将接近于零,而只有少数系数包含重要的信息
噪声抑制与信号保留:在变换域中,噪声通常表现为广泛分布的小系数,而信号则表现为相对较大的系数。通过稀疏表示增强,可以更容易地区分噪声和信号,从而在去除噪声的同时更好地保留图像的有效信息。

*(3)协同滤波:处理的对象通常是多维数据组(如图像块集合),通过块匹配、三维变换、变换谱收缩处理及逆变换等步骤实现滤波。它侧重于利用数据间的相似性和冗余性进行协同处理。

协同滤波特指针对三维数据组(由相似图像块组成)开发的一种特殊处理过程。具体来说,协同滤波在BM3D算法中的作用可以归纳为以下三个连续步骤:
对组进行三维变换:
在BM3D中,首先通过块匹配将相似的图像块聚集在一起,形成一个三维数据组。然后,对这个三维数据组执行三维变换(如三维离散余弦变换DCT或三维小波变换等)。这一步骤的目的是将图像块从空间域转换到变换域,使得信号和噪声在变换域中表现出不同的特性,便于后续处理。
对变换谱进行收缩处理
在变换域中,信号通常表现为较大的系数,而噪声则表现为广泛分布的小系数。协同滤波通过对变换谱(即变换后的系数)进行收缩处理(如硬阈值、软阈值或维纳滤波等方法),来去除噪声系数并保留信号系数。这一步骤是实现去噪的关键,通过设定适当的阈值或滤波参数,可以在去除噪声的同时尽量保留图像的结构和细节。
进行逆三维变换
经过变换谱的收缩处理后,将处理后的变换系数进行逆三维变换,以恢复出滤波后的图像块。由于每个像素点可能包含在多个重叠的图像块中,因此需要对这些重叠的图像块进行聚合处理(如加权平均),以得到最终的去噪图像。逆三维变换确保了图像块从变换域返回到空间域,并且保留了去噪处理的效果。*

(4)三维估计,由联合滤波后的分组图像块组成”指的是通过块匹配、分组和联合滤波等步骤,对由相似图像块组成的三维数据进行处理和分析,最终得到一种去噪、增强或恢复后的三维数据表示

(5)在协同滤波之后,滤波后的块会被返回其原始位置。由于这些块在原始图像中是重叠的,因此每个像素都会得到多个不同的估计值。为了充分利用这种冗余信息并得到一个更加准确和稳定的像素值,需要通过聚合过程来对这些估计值进行合并。其实这里可以理解为参考块1的相似块有2 ,3,4.反过来说当参考块为2时,1,3,4也是他的相似块,故会出现重叠冗余现象。
聚合过程通常采用加权平均的方法。对于每个像素,它会考虑所有包含该像素的滤波后的块,并根据块与像素的相对位置、块的质量或其他因素来分配不同的权重。然后,将这些加权后的估计值相加,并除以权重的总和,以得到该像素的最终估计值。

(6)协同维纳滤波的原理
维纳滤波是一种基于最小均方误差(MMSE)准则的最优线性滤波方法。它通过考虑信号和噪声的统计特性,构造一个滤波器,使得滤波后的信号与原始信号的均方误差最小。协同维纳滤波则是在此基础上,结合图像的非局部自相似性,对多个相似图像块进行联合处理。

1 引言

存在许多去噪方法,这些方法起源于不同的学科领域,如概率论、统计学、偏微分方程、线性和非线性滤波、光谱和多分辨率分析等。所有这些方法都依赖于对真实(无噪声)信号的一些显式或隐式假设,以便将其与随机噪声正确分离。

多分辨率变换可以对空间局部细节(如边缘和奇异点)实现良好的稀疏性(7)。由于这些细节通常大量存在于自然图像中,并传达了其中嵌入的大部分信息,因此这些变换在图像去噪方面找到了重要的应用。最近,已经开发出了许多基于多分辨率变换的高级去噪方法,这些方法依赖于通常过完备(例如,平移不变和多方向)变换的系数之间的精细统计依赖性(8)。此类图像去噪方法的示例可见于文献[1]–[4]。

除了小波技术,过完备表示在传统上在提高甚至最基本的基于变换的方法的恢复能力方面也发挥了重要作用。这体现在滑动窗口变换域图像去噪方法[5]、[6]中,其基本思想是在局部(加窗)变换域中应用收缩。在那里,连续窗口之间的重叠造成了过完备性,而变换本身通常是正交的,例如二维离散余弦变换(2D DCT)

然而,如果所采用的变换无法获得某些图像细节的稀疏表示,那么过完备性本身并不足以弥补无效的收缩。例如,二维离散余弦变换在表示尖锐过渡和奇异点时效果不佳,而小波变换在表示纹理和平滑过渡时通常表现不佳。自然图像的多样性使得任何固定的二维变换都无法在所有情况下都实现良好的稀疏性。因此,常用的正交变换只能为特定的图像模式实现稀疏表示。

Muresan和Parks[7]提出了局部图像块的自适应主成分作为克服标准正交变换上述缺点的工具。这种方法对于高度结构化的图像模式产生了良好的结果。然而,噪声的存在基本上会恶化正确主成分分析(PCA)基的计算。

出于类似的目的,Elad和Aharon的K-SVD算法[8]利用通过初步训练过程获得的高度过完备字典。这些技术的缺点是,PCA和学习字典都带来了非常高的计算负担。

另一种方法[9]是利用形状自适应变换对邻域进行处理,这些邻域的形状适应于显著的图像细节,因此主要包含同质信号。

最近,引入了一种精心设计的自适应空间估计策略,即非局部均值法[10]。这种方法与变换域方法不同。其基本思想是对图像进行逐点估计,其中每个像素都是通过以与估计像素为中心的区域相似的区域为中心的像素的加权平均值获得的。这些估计是非局部的,因为原则上可以在图像的所有像素上计算平均值。该方法的一个重要扩展是基于样例的估计器[11],它利用成对假设检验来定义自适应非局部估计邻域,并取得了与最佳变换域技术相当的结果

在本文中,我们提出了一种基于变换域增强稀疏表示的新型图像去噪策略。稀疏性的增强是通过将图像中相似的二维片段分组为三维数据数组来实现的,我们称之为“组”。协同滤波是一种专门用于处理这些三维组的特殊程序。它包括三个连续步骤:组的三维变换、变换谱的收缩和三维逆变换。这样,我们就得到了组的三维估计,该估计由一组联合滤波的二维片段组成。由于分组片段之间的相似性,变换可以实现真实信号的高度稀疏表示,从而可以通过收缩很好地分离噪声。通过这种方式**,协同滤波揭示了分组片段所共有的最精细的细节**,同时保留了每个单独片段的基本独特特征(9)

本文开发并详细描述了一种基于这种新型策略的图像去噪算法。它概括并改进了我们在[12]中介绍的初步算法。开发了一种非常高效的算法实现,提供了有效的复杂度/性能权衡。实验结果表明,该算法在峰值信噪比(PSNR)和主观视觉质量方面都取得了出色的去噪性能,优于当前的最先进技术。本文还介绍了基于[13]的彩色图像去噪扩展。

本文的组织结构如下。我们在第二节中介绍了分组和协同滤波的概念。第三节描述了开发的图像去噪算法。第四节提供了该算法的高效且可扩展的实现,第五节给出了其扩展到彩色图像去噪的内容。第六节展示了实验结果。第七节对开发的方法进行了总体讨论,第八节包含了相关结论。

(7)多分辨率变换是一种在多个尺度或分辨率上分析信号或图像的方法。它允许我们同时捕捉信号的全局特征和局部细节。以小波变换为例,它可以对空间局部细节(如边缘和奇异点)实现良好的稀疏性。
小波变换是一种典型的多分辨率变换方法,它通过伸缩和平移一系列基函数(称为小波)来分析信号。这些小波基函数具有局部化的特性,能够在不同的频率和位置上提供信号的信息。
对于图像中的边缘和奇异点等局部细节,小波变换能够在变换域中以少量的非零系数来表示它们。这是因为边缘和奇异点通常对应着图像中的高频成分,而小波变换能够有效地捕捉这些高频成分。在变换后的系数矩阵中,与边缘和奇异点对应的系数往往具有较大的幅度,而其他位置的系数则接近于零,从而实现了稀疏性。
这种稀疏性特性使得小波变换在图像处理中具有许多优势。例如,在图像去噪中,我们可以保留变换域中的高幅值系数并丢弃低幅值系数(主要由噪声引起),从而有效地去除噪声并恢复原始图像。在图像压缩中,我们可以利用稀疏性来减少存储和传输的数据量,提高压缩效率

(8)在图像处理领域,变换的“过完备性”是一个重要的概念,它通常与变换的冗余性和表达能力相关。当提到变换是“过完备的”时,主要指的是以下几个方面:
基元素数量大于信号维度:过完备变换意味着用于表示信号的基元素(或称为原子、字典元素等)的数量大于信号本身的维度。在传统的正交变换(如傅里叶变换、离散余弦变换DCT等)中,基元素的数量与信号的维度相等,每个基元素都与信号空间中的一个独特方向或频率分量相对应。而在过完备变换中,由于基元素数量增多,同一个信号可以有多种不同的表示方式,从而提供了更大的表示灵活性和冗余性。
平移不变性和多重方向性:平移不变性和多重方向性是过完备变换中常见的特性,它们进一步增强了变换的表达能力。
平移不变性:指变换对信号的平移操作不敏感,即无论信号在时域或空域中如何平移,其变换系数(或特征表示)都保持不变或仅发生微小的变化。这种特性在图像处理和计算机视觉中非常重要,因为它允许算法对图像中的目标进行准确的识别和定位,即使这些目标在图像中的位置发生了变化。
多重方向性:指变换能够捕捉到信号在不同方向上的特征。在传统的二维小波变换中,虽然可以捕捉到信号的水平、垂直和对角线方向上的特征,但其方向分辨率有限。而过完备变换(如曲线波变换、轮廓波变换等)通过引入更多的方向性基元素,能够更精细地捕捉到信号在不同方向上的细节特征,这对于图像去噪、边缘检测等任务非常有利。
增强的稀疏表示能力:由于过完备变换提供了更大的表示灵活性和冗余性,因此它们通常能够更有效地捕捉到信号中的稀疏结构。稀疏表示是指信号可以用少数几个显著的基元素(或变换系数)来近似表示,而其余大部分基元素的系数都接近于零。这种稀疏性对于信号处理、压缩感知、图像去噪等领域都非常重要,因为它允许算法在保留信号重要特征的同时去除冗余和噪声。
过完备性与正交变换:
在这种方法中,变换本身通常是正交的,如二维离散余弦变换(DCT)。正交变换意味着变换系数之间是不相关的,这有助于简化去噪过程。然而,过完备性并不足以补偿如果采用的变换不能对某些图像细节实现稀疏表示时的无效收缩。

(9)在协同滤波的过程中,每个片段的独特性和重要特征得以保留,主要归功于以下几个关键因素:
分组策略
分组是基于片段之间的相似性进行的,这意味着每个组内的片段在某种程度上是相关的,但它们仍然保持各自的独特性。
分组并不是简单的合并,而是将具有共同特征的片段组织在一起,以便进行更有效的处理。
三维变换
三维变换是应用于整个组的,但它并不破坏单个片段内的结构或特征。
变换的目的是在更高维的空间中揭示信号的本质,同时保持每个片段的独特性。
变换谱的收缩
收缩步骤是针对变换后的谱进行的,它主要去除噪声和不必要的成分。
由于噪声通常表现为高频或低能量的成分,因此收缩步骤会优先去除这些成分,而保留包含重要信息的成分。
三维逆变换
逆变换将处理后的数据返回到原始的空间域,即二维片段。
在逆变换过程中,每个片段的独特性和重要特征被重新构建和保留

2 分组和协作过滤

我们将“分组”定义为将给定信号的相似维度片段收集到一个多维数据结构中的概念,我们称之为“组”。以图像为例,信号片段可以是任意的二维邻域(例如,图像块)。在这里,一个组是由相似的图像邻域堆叠在一起形成的三维数组。如果邻域具有相同的形状和大小,则形成的三维数组是一个广义的圆柱体。分组的重要性在于能够对每个组进行更高维度的过滤利用分组片段之间的潜在相似性(相关性、亲和力等)来估计每个片段中的真实信号。我们将这种方法称为协同过滤。

A.分组

分组可以通过各种技术来实现,K-均值聚类[14]、自组织映射[15]、模糊聚类[16]、矢量量化[17]等。关于这个主题有大量的文献;我们建议读者参考[18],以获得这些方法的详细和系统的概述。信号片段之间的相似性通常被计算为某个距离度量的倒数。因此,较小的距离意味着较高的相似性。可以采用各种距离度量,例如两个信号片段之间的差的范数.其他示例是在非局部均值估计器[10]中使用的加权欧几里德距离,以及在基于样本的估计器[11]中使用的归一化距离。当处理复杂的或不确定的(如:噪声)数据,可能需要首先从信号中提取一些特征,然后仅测量这些特征的距离[18]。

B.按匹配分组

矢量量化或K-均值聚类等分组技术本质上是基于分区的思想。这意味着它们建立了不相交的组或簇(类),以这样一种方式,每个片段都属于一个且仅属于一个组。构造元素具有高度相互相似性的不相交群通常需要递归过程,并且可能需要计算[18]。此外,划分导致对不同片段的不平等处理,因为靠近组的质心的片段比远离组的质心的片段更好地被表示。这总是发生,即使在信号的所有片段等距分布的特殊情况下也是如此。

可以通过匹配来实现对相互相似的信号片段的更简单和有效的分组,其中,与上述划分方法相比,所形成的组不一定是不相交的。匹配是一种寻找与给定参考信号相似的信号片段的方法。这通过成对测试参考片段和位于不同空间位置的候选片段之间的相似性来实现。其距离(即,相异性)小于给定阈值的被认为是相互相似的,并且随后被分组。相似性对于所考虑的组起到隶属函数的作用,并且参考片段可以被认为是该组的某种“质心”。任何信号片段都可以用作参考片段,因此可以为它构建一个组。

我们注意到,对于大多数距离测量,在参考片段和所有匹配片段之间的距离上建立界限意味着该组中任意两个片段之间的距离也是有界的。粗略地说,这个界就是群的直径。虽然对于任意距离测量,这样的陈述可能不精确地成立,但是对于度量的情况(例如,- -norms)它只是三角不等式的一个直接后果。

块匹配(BM)是一种特定的匹配方法,其已经广泛地用于视频压缩(MPEG 1、2和4,以及H. 26 x)中的运动估计。作为一种特定的分组方式,它被用于找到相似的块,然后将这些块堆叠在一起形成3-D阵列(即,一个组)。在图1中给出了通过图像的块匹配进行分组的说明性示例,其中我们示出了几个参考块以及与它们相似地匹配的参考块。

在这里插入图片描述

Fig. 1.从受高斯白色噪声破坏的噪声自然图像中分组块的图示,标准差为15,平均值为零。每个片段显示了用“R”标记的参考块和与之匹配的一些块。

C.协同过滤

给定一组片段,该组的协作过滤产生估计,每个分组片段一个估计。一般而言,这些估计值可能不同。术语“协作的”是字面上的意思,即每个分组的片段为过滤所有其它片段而协作,反之亦然。让我们考虑用于根据被加性零均值独立噪声破坏的观察(未示出)来估计图2中的图像的协作过滤的说明性示例。特别地,让我们关注同一图中所示的已经分组的块。这些块表现出完美的相互相似性,这使得逐元素平均(即,在相同相对位置处的像素之间求平均)。因此,对于每个组,该协作平均产生所有分组块的估计。因为相应的无噪声块被假设为相同的,所以估计是无偏的。因此,最终的估计误差仅由与组中的块的数目成反比的残差方差引起。不管信号片段有多复杂,只要这些组包含大量片段,我们就可以获得非常好的估计。

在这里插入图片描述

见图2。在人工图像中进行分组的简单示例,其中对于每个参考块(具有粗边界),存在完全相似的参考块。

D.基于变换域收缩的协同过滤

有效的协同过滤可以在变换域中实现为收缩。假设已经形成了d+1维的相似信号片段组,协同收缩包括以下步骤:

• 对该组应用d+1维线性变换。
• 对变换系数进行收缩(例如,通过软阈值、硬阈值或维纳滤波)以衰减噪声。
• 对线性变换进行逆变换,以产生所有分组片段的估计值。

当应用于自然图像片段组(如图1所示)时,这种协同变换域收缩尤其有效。这些组具有以下两个特征:

• 片段内相关性,出现在每个分组片段的像素之间——这是自然图像的一个特性;
• 片段间相关性,出现在不同片段的相应像素之间——这是分组片段相似性的结果。

三维变换可以利用这两种相关性,从而对组中的真实信号产生稀疏表示。这种稀疏性使得收缩在衰减噪声的同时,能够很好地保留信号的特征。

让我们通过考虑图1中所示的分组图像块,来简单说明这种协同收缩的好处。让我们首先考虑不执行协同过滤的情况,而是将二维变换分别应用于给定n个片段组中的每个单独块。由于这些分组块非常相似,对于其中任何一个块,我们应该得到大致相同数量的重要变换系数,记为a。这意味着整个片段组由na个系数表示。相比之下,在协同过滤的情况下,除了二维变换外,我们还会对分组块应用一维变换(相当于对整个组应用可分离的三维变换)。如果这个一维变换具有直流(DC)基元素,那么由于块之间的高度相似性,代表整个组的显著系数大约只有a个(10),而不是na个。因此,分组增强了稀疏性,并且稀疏性随着分组块的数量增加而增加。如图1所示,不同空间位置的小图像块之间的强相似性在自然图像中确实非常常见。这是属于均匀区域、边缘、纹理、平滑强度梯度等的块的特征。因此,在建模自然图像时,可以非常现实地假设存在相互相似的块,这强烈促使我们在图像去噪算法中使用分组和协同过滤。

(10)不执行协同过滤的情况:
假设我们有n个非常相似的图像块(这些图像块被分组在一起)。
对每个单独的图像块应用二维变换(如小波变换、傅里叶变换等),以得到该块的重要变换系数。
由于这些块非常相似,对于其中任何一个块,我们都会得到大致相同数量的重要变换系数,记为a。
因此,整个片段组(n个块)将由na个系数表示。
执行协同过滤的情况:
除了对每个块应用二维变换外,我们还对整个分组块应用一维变换(这可以看作是对整个组应用了一个可分离的三维变换)。
如果这个一维变换包含直流(DC)基元素(即变换的一个基本组成部分,通常与数据的平均值或“直流”分量相关),那么由于块之间的高度相似性,整个组可以由大约只有a个显著系数来表示,而不是na个。
这是因为一维变换能够捕捉到块之间的相似性,并将这种相似性转化为更少的显著系数。
分组增强了稀疏性:
稀疏性是指数据中有许多零或接近零的值,而只有少数几个显著的值。
在协同过滤的情况下,由于一维变换的引入和块之间的相似性,整个组的表示变得更加稀疏(即有更多的零或接近零的系数,而显著系数的数量减少)。
这种稀疏性随着分组块的数量增加而增加,因为更多的块意味着更多的相似性可以被一维变换所利用。

3 算法

在所提出的算法中,通过块匹配实现分组,通过在三维变换域中进行收缩实现协同过滤。所使用的图像片段为固定大小的方形块。该算法执行的一般过程如下。对输入的噪声图像进行处理,依次从中提取参考块,并针对每个这样的块执行以下操作:

• 查找与参考块相似的块(块匹配),并将它们堆叠在一起形成一个三维数组(组);
• 对该组进行协同过滤,并将所有分组块的二维估计值返回到其原始位置。

处理完所有参考块后,获得的块估计值可能会重叠,因此,每个像素会有多个估计值。我们将这些估计值进行聚合,以形成整个图像的估计值。
这一一般过程以两种不同的形式实现,以组成一个两步算法。该算法如图3所示,执行过程如下。

步骤1)基本估计。
a) 分块估计。对噪声图像中的每个块执行以下操作。
i) 分组。找到与当前处理的块相似的块,然后将它们堆叠在一起形成一个三维数组(组)。
ii) 协同硬阈值处理。对形成的组应用三维变换,通过硬阈值处理变换系数来衰减噪声,然后反转三维变换以产生所有分组块的估计值,并将块的估计值返回到其原始位置。
b) 聚合。通过对所有重叠的分块估计值进行加权平均,计算真实图像的基本估计值。

步骤2)最终估计:使用基本估计值,执行改进的分组和协同维纳滤波。
a) 分块估计。对每个块执行以下操作。
i) 分组。在基本估计值中使用块匹配(BM)来找到与当前处理的块相似的块的位置。使用这些位置,形成两个组(三维数组),一个来自噪声图像,一个来自基本估计值。
ii) 协同维纳滤波。对两个组都应用三维变换。使用基本估计值的能量谱作为真实(试点)能量谱,对噪声组执行维纳滤波。通过对滤波后的系数应用逆三维变换,产生所有分组块的估计值,并将块的估计值返回到其原始位置。
b) 聚合。通过使用加权平均聚合所有获得的局部估计值,计算真实图像的最终估计值。

上述算法中第二步的两个主要动机是:
使用基本估计值而不是噪声图像,可以通过块匹配来改进分组
使用基本估计值作为经验维纳滤波的试点信号,比简单地对噪声数据的三维谱进行硬阈值处理更有效、更准确

在这里插入图片描述

图3.提出的图像去噪算法流程图。由虚线包围的操作对于每个处理的块(用“R”标记)

观测模型和符号:我们考虑一个噪声图像的形式,其中是图像域中的二维空间坐标,是真实(无噪声)图像,是独立同分布的零均值高斯噪声,方差为。我们用表示从中提取的固定大小的块,其中是块的左上角坐标。或者,我们可以说块位于中。一组收集的二维块用粗体大写字母表示,下标是其分组块的坐标集合,例如,是由位于坐标集中的块组成的三维数组。为了区分第一步和第二步中使用的参数,我们分别使用上标“ht”(硬阈值处理)和“wie”(维纳滤波)。例如,是在第一步中使用的块大小,而是在第二步中使用的块大小。类似地,我们用表示基本估计,用表示最终估计。

接下来的小节将详细介绍所提出去噪方法的步骤。

结论

本文提出的图像建模与估计算法可作为一种新的非局部自适应非参数滤波方法。该算法显示了最先进的性能。据我们所知,表III和表IV中所示的PSNR结果分别是对灰度和彩色图像中的加性高斯白噪声进行去噪的最高结果。此外,如表I所示,该算法以合理的计算成本获得这些结果,并允许有效的复杂度/性能折衷。所提出的方法可适用于各种噪声模型,如加性有色噪声、非高斯噪声等,通过修改算法的基本部分和Wiener部分中系数方差的计算,此外,所开发的方法可经修改以用于对1-D信号和视频进行降噪、用于图像恢复以及用于可受益于高度稀疏信号表示的其它问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2102742.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Pytorch安装 CUDA Driver、CUDA Runtime、CUDA Toolkit、nvcc、cuDNN解释与辨析

Pytorch的CPU版本与GPU版本 Pytorch的CPU版本 仅在 CPU 上运行,适用于没有显卡或仅使用 CPU 的机器。安装方式相对简单,无需额外配置 CUDA 或 GPU 驱动程序。使用方式与 GPU 版相同,唯一不同的是计算将自动在 CPU 上进行。 Pytorch的GPU版…

VBA学习(63):Excel VBA 数据分析展示/ListView控件/Combox组合框控件/CheckBox复选框控件/科目汇总表

前面我们分享了使用ListVeiw进行数据展示,做出“科目汇总表”来(Excel VBA 数据分析展示/ListView控件、Excel VBA 数据分析展示/ListView控件/Combox组合框控件/科目汇总表(2)),今天,我们继续完善按月查询、按一级科目…

codesys进行控制虚拟轴运动时出现的一些奇怪bug的解释

codesys进行控制虚拟轴运动时出现的一些奇怪bug的解释 问题描述第一个奇怪的bug:新建的工程没有SoftMotion General Axis Pool选项第二个奇怪的bug:在新建工程SoftMotion General Axis Pool选项时,无法手动添加第三个奇怪的bug:虚…

Spring源码之refresh

1.refesh的核心介绍 在 Spring 框架中,refresh 主要用于刷新应用上下文。这一过程涉及多个重要的步骤,确保 Spring 容器的状态更新、bean 的加载以及资源的初始化。 refresh 方法的主要功能 初始化上下文: refresh 方法会初始化应用上下文&…

【项目实战】智能机械臂协同视觉辅助仓储物流管控平台

写在前面: 🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝 个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。 🔍 本文系 清流君 原创之作&…

9月4日星期三今日早报简报微语报早读

9月4日星期三,农历八月初二,早报微语早读。 1、全球第二批100个地质遗产地公布,中国乌海、自贡、桂林等3地入选; 2、我国科学家在超高纯石墨领域取得重大突破; 3、2024上海百强企业榜单发布:入围门槛105…

小土堆pytorch

anaconda安装 pip list 可以看有哪些package包 nvidia-smi查看显卡的状态 安装pytorch 检验pytorch是否安装成功,以及是否pytorch是否可以使用gpu。 (1)查看conda版本 conda --version 或 conda -V (2)更新conda(将conda自身更新到最新版本) …

算法打卡 Day28(回溯算法)-组合总数 + 组合总数 Ⅱ+ 电话号码的字母组合

文章目录 Leetcode 17-电话号码的字母组合题目描述解题思路 Leetcode 39-组合总数题目描述解题思路 Leetcode 216-组合总数 Ⅲ题目描述解题思路 Leetcode 17-电话号码的字母组合 题目描述 https://leetcode.cn/problems/letter-combinations-of-a-phone-number/description/ …

Flink问题记录

尚硅谷Flink1.17问题记录 上手pom依赖循环递归WordCountStreamDemo中readTextFile是deprecated&#xff08;强烈反对的&#xff09; 上手 pom依赖循环递归 pom依赖中&#xff1a; <dependency><groupId>org.apache.flink</groupId><artifactId>flink…

J.U.C Review - 线程池原理/源码解析

文章目录 为什么要使用线程池ThreadPoolExecutor构造方法解析常见的阻塞队列实现及其特性阻塞队列在实际应用中的适用场景分析自定义ThreadFactory和RejectedExecutionHandler实际使用中的示例与代码片段 线程池的状态线程池的任务处理流程线程复用的实现四种常见的线程池newCa…

uniapp 自定义微信小程序 tabBar 导航栏

背景 做了一个校园招聘类小程序&#xff0c;使用 uniapp vue3 uview-plus pinia 构建&#xff0c;这个小程序要实现多角色登录&#xff0c;根据权限动态切换 tab 栏文字、图标。 使用pages.json中配置tabBar无法根据角色动态配置 tabBar&#xff0c;因此自定义tabBar&…

达梦数据库的系统视图v$ifun

达梦数据库的系统视图v$ifun 达梦数据库&#xff08;DM Database&#xff09;中V$IFUN 视图是用于检测函&#xff08;Function&#xff09;信息的。 在 Oracle 数据库中&#xff0c;类似的系统视图被称为动态性能视图&#xff0c;但在达梦数据库中并没有与 Oracle 一一对应的…

QT(1)-.pro 文件 转成.vcxproj 工程

1.qtcreator创建的文件转换成vs2019可以打开的。 1.QT webenginewidgets unknown modules webenginewidgets 要用 MSVC2017 &#xff0c;用minGW 32构建

使用Django身份验证系统

【图书介绍】《Django 5企业级Web应用开发实战&#xff08;视频教学版&#xff09;》_django 5企业级web应用开发实战(视频教学版)-CSDN博客 《Django 5企业级Web应用开发实战&#xff08;视频教学版&#xff09;》(王金柱)【摘要 书评 试读】- 京东图书 (jd.com) Django 5框…

windows中Selenium安装最新版Chrome WebDriver

windows中Selenium安装最新版Chrome WebDriver 需求&#xff1a;需要使用 selenium 对某个网页进行截图 文章目录 windows中Selenium安装最新版Chrome WebDriver一、查看Chrome版本二、找到对应的chromedriver版本三 安装3.1 确定google安装路径3.2 将下载的google driver 解压…

解决bug: RuntimeError: Address already in use,一个linux下pytorch多卡训练tcp端口占用的bug

时间&#xff1a;2024.9.3 1&#xff09;bug&#xff1a; self._store TCPStore( # type: ignore[call-arg] RuntimeError: Address already in use2&#xff09;原因分析 linux下pytorch多卡训练深度学习模型&#xff0c;训练中途暂停训练&#xff0c;但仍有进程占用某个端…

字典树Trie(专项复习)

一.P8306 【模板】字典树 题目思路:字典树的板子题,熟练写出insert函数(建树),以及query函数(查询)即可. 代码实现: #include<bits/stdc.h> using namespace std; typedef unsigned long long ull; typedef long long ll; #define N 3000005 #define P 131 ll f1[N]; s…

华为云征文|Flexus云服务X实例安装ODBC驱动,在ODBC中建立MySQL数据库连接,通过QT连接云数据库

引出 4核12G-100G-3M规格的Flexus X实例使用测评第2弹&#xff1a;Flexus云服务X实例安装ODBC驱动&#xff0c;在ODBC中建立MySQL数据库连接&#xff0c;通过QT连接云数据库 什么是Flexus云服务器X实例 官方解释&#xff1a; Flexus云服务器X实例是新一代面向中小企业和开发…

第140天:内网安全-横向移动局域网ARP欺骗DNS劫持钓鱼中间人单双向

目录 案例一&#xff1a;局域网&工作组-ARP原理-断网限制-单向 案例二&#xff1a;局域网&工作组-ARP欺骗-劫持数据-双向 案例三&#xff1a;局域网&工作组-DNS 劫持-钓鱼渗透-双向 案例一&#xff1a;局域网&工作组-ARP原理-断网限制-单向 原理&#xff1…

pytorch利用简单CNN实现葡萄病虫害图片识别

1 前言 之前我开发了一个葡萄病虫害的可视化系统&#xff0c;最近就想给这个系统增加2个功能&#xff0c;一个是对接一个AI助手&#xff0c;可以进行葡萄病虫害的咨询&#xff0c;直接对接千问大模型&#xff0c;这个在之前的博文里已经介绍过对接方法了&#xff0c;第二个是做…