非局部均值去噪算法中高斯核与邻域欧式距离的关系如何?

信息处理 图像处理 matlab 过滤器 计算机视觉 去噪
2022-01-25 09:24:52

我正在阅读论文A non-local algorithm for image denoising,它描述了原始的非局部均值算法。他们定义(pdf的第3页)两个像素的两个正方形固定邻域之间的距离为

v(Ni)v(Nj)2,a2

其中a>0是高斯核的标准差。但是,我不明白这个符号。公式中如何使用高斯核?它与欧几里得距离有什么关系?

如果有更熟悉图像处理和计算机视觉以及所有这些符号的人能给我一个解释,我将不胜感激。

2个回答

所以我们有 2 个邻域(它们是矩阵)v(Ni)v(Nj)我们如何计算它们之间的距离?

一种选择是欧几里得距离:

v(Ni)v(Nj)22=k(v(Ni)kv(Nj)k)2

然而,这使邻域窗口中的每个像素具有相同的权重。Non Local Means Denoising Algorithm的作者认为,最好给靠近窗口中心的像素更高的权重。
他们通过将差分窗口乘以高斯函数然后求和来轻松地做到了这一点。就像是:

v(Ni)v(Nj)2,a2=kwk(a)(v(Ni)kv(Nj)k)2

其中是基于 2D 高斯函数的权重,其中心与邻域窗口的中心对齐,其标准偏差由给出。wk(a)a

权重函数

在经典的非局部均值实现中,高斯函数用作权重。

假设运算符是向量化运算符(按列),那么对于窗口,以下 MATLAB 代码将定义v()31×31wk(σ)

windowRadius    = 15;
kernelStd       = 3.5;

vX = -windowRadius:windowRadius;
vK = exp(-((vX .^ 2) / (2 * kernelStd * kernelStd)));
vK = vK ./ sum(vK);
mW = vK.' * vK;
vW = mW(:);

figure();
surface(vX, vX, mW);

权重函数由下式给出:

在此处输入图像描述

事实上,居中的像素将具有更高的权重。

所以让我们一步一步来:

让我们将定义为标准差ka

k(i,j)=v(Ni)v(Nj)2,a2

的高斯核定义为:a

Ga(x)=14πa2ex24a2

并结合它你得到:

k(i,j)=14πa2ev(Ni)v(Nj)224a2

所以最后被定义为w

w(i,j)=1Z(i)ek(i,j)h2

回到你的最后一个问题:“那么,这个定义 w 的指数函数和高斯核之间有什么区别?”

差异不是正确的问题,以嵌套方式依赖于,因为它是指数函数的参数。wk

所以正如我在评论中提到的,一切都在文章中,花点时间重点阅读。把它写在纸上,它会帮助你组织你的想法。