图像中的随机噪声去除

信息处理 噪音 图片 图像压缩
2022-01-01 10:16:17

我正在尝试从图像中去除随机噪声。噪声是任意随机的,因此它不一定遵循某个分布(并非每个像素都有相同的机会受到噪声影响,也不是每个像素都受到相同数量的噪声影响)。例如,这样的图像可能看起来像这个示例图像:

在此处输入图像描述

通常的快速'n'cheap 过滤器(如平均等)只是不会为此类图像削减它。很明显,图像中仍有足够的信息可以重建,但我认为还没有可用的工具可以真正做到这一点。关于我如何尝试重建的任何提示?工具、算法?

更新 1

到目前为止,我最接近的是:

在此处输入图像描述 在此处输入图像描述

这远非好事,只是为了通过消除噪音来表达我的意思。生成的图像应该具有或多或少的均匀区域,大约是正确的颜色。

理想的结果大致如下所示:

在此处输入图像描述

更新 2

噪音很小的例子

在此处输入图像描述

噪音更大的例子

在此处输入图像描述

更新 3

PNG图像:

在此处输入图像描述 在此处输入图像描述

对于那里的莉娜粉丝:

在此处输入图像描述

2个回答

有很多方法可以进行图像去噪。

我将举几个已知的例子:

  1. 小波分解的硬/软阈值:对图像进行小波分解,并将所有小于某个最小值的系数为零,其他值线性化。 在此处输入图像描述

  2. 非局部方法:我们使用这样一个事实,即对于图像中的每个补丁,我们可以在图像中找到非常相似的其他补丁的“自然图像”。因此,对于每个像素,我们查看他周围的邻域,然后搜索具有相同邻域的其他像素,然后使用这些补丁来计算原始像素的值。使用补丁非常协相关但噪声不相关的事实不。

在此处输入图像描述

  1. 块匹配 3D:我们与之前在图像周围找到相似的块相同,然后将它们排列为 3D 块并应用小波阈值。这更复杂,您可以阅读相关内容。一个基本的方案是:

在此处输入图像描述

还有很多方法,只需通过谷歌搜索,您就会获得很多信息,希望这个基本介绍能对您有所帮助。

有多种方法可以对图像信号进行去噪。在关于图像稀疏性的前言中,我将提供一些 matlab 代码。图像本质上是稀疏的,不是在空间域中,而是在某些域中,如傅立叶、DCT 或小波域。如果你看一下图像的 FFT,你会发现只有几个系数是非零的,如下图描述了图像的 fft2: 在此处输入图像描述

imshow(log10(abs(fftshift(fft2(Image)))),[])

事实上,像 JPEG 这样的图像压缩算法利用了图像的这一特性。这种稀疏性属性也可以用于去噪图像。如果将图像转换为小波域,则像上述噪声这样的随机噪声往往会分散其系数,但与图像相关的系数往往会集中在几个 bin 中。因此,最基本、最简单的技术是按数量级对图像的小波系数进行 FFT、DCT 排序,使所有小于阈值的系数为零最后将图像转换回空间域。基于这个想法,出现了一些软/硬阈值算法。在这方面一个好的 Matlab 实现可以在下面的页面中找到,他们提供了基于小波的去噪工具:

http://eeweb.poly.edu/iselesni/WaveletSoftware/denoise.html

另一种利用稀疏性的技术是 $l_1$ 正则化。看,它在一些假设下被证明,$l_1$ norm 可以用来表示非零系数的数量($l_0$ norm,你可以在 Compressive Sensing literate 中找到证明)。

再次注意,随机噪声倾向于在变换域中形成非稀疏表示(例如,白噪声在频率上具有平坦表示)。因此,如果我们定义一个凸优化问题,在该问题中我们尝试构建一个保留噪声图像能量的图像,并尝试最小化变换域中非零系数的数量,我们将消除噪声。问题通常定义如下:

$$D = \arg \min_d ||Id||_2 + \lambda|| f(d) ||_1 $$

其中,$D$ 是去噪图像,$I$ 是噪声图像,$f$ 是变换算子(例如 DFT 矩阵),$\lambda$ 是正则化因子。第一项试图使$D$ 越来越接近原始图像,第二项试图使$D$ 尽可能稀疏。通过解决上述问题,我们将去除图像中的噪声。

为了解决这个优化问题 ,可以使用CVX 工具箱。我不确定 CVX 工具箱中的以下代码是否有效,只是尝试给你一个想法:

I=imread('J13Wn.jpg');
I=double(I);
Rn=I(:,:,1); 
Rn=imresize(Rn,[256 256]); % for out of memory error in my computer
B=dctmtx(256);
cvx_begin
variable R(256,256);
minimize(norm(Rn-R,2)+0.1*norm(B*R,1));
cvx_end

如果它不起作用,试试这个工具箱: http ://www.cs.tut.fi/~foi/GCF-BM3D/