Python 二维自相关 fft - 是否减去均值?
Python 2D Autocorrelation fft - subtract mean or no?
我正在尝试使用 python (scipy.sig.fftconvolve) 计算图像的 2d 自相关和互相关。就相关性而言,人们通常希望减去均值。然而,协方差方程表示
E[(X-E[X])(Y-E[Y])] == E[XY]-E[X]E[Y]。
这意味着,如果我在进行自相关之前减去平均值,或者如果我在相关之后减去均方,理论上我应该能够得到相同的结果。这对于峰值或 DC 分量的情况是正确的,但不是图像的其余部分。它们看起来不一样,这是一个例子 autocorrelation with mean^2 subtracted off
和autocorrelation with mean subtracted off image before doing correlation
那么哪种方式才是正确的方式呢??
您展示的数学没有考虑边界,但对于真实数据,通常必须考虑这个问题。
首先考虑常数数据的情况,并在边界处使用零填充计算自相关。结果将是一维三角形或二维金字塔。如果您现在在此数据上叠加一个小波纹,您仍然只会看到三角形或金字塔。
但如果减去均值,triangle/pyramid 就会消失,只剩下波动的自相关。这可能就是你想要的。
请注意两个图形的颜色条比例不同。您不太可能在第一幅图中看到第二幅图的底层结构,其中金字塔结构占主导地位。
因此,简而言之,对于零填充自相关,您可能希望减去平均值作为计算的第一步。
我正在尝试使用 python (scipy.sig.fftconvolve) 计算图像的 2d 自相关和互相关。就相关性而言,人们通常希望减去均值。然而,协方差方程表示
E[(X-E[X])(Y-E[Y])] == E[XY]-E[X]E[Y]。
这意味着,如果我在进行自相关之前减去平均值,或者如果我在相关之后减去均方,理论上我应该能够得到相同的结果。这对于峰值或 DC 分量的情况是正确的,但不是图像的其余部分。它们看起来不一样,这是一个例子 autocorrelation with mean^2 subtracted off
和autocorrelation with mean subtracted off image before doing correlation
那么哪种方式才是正确的方式呢??
您展示的数学没有考虑边界,但对于真实数据,通常必须考虑这个问题。
首先考虑常数数据的情况,并在边界处使用零填充计算自相关。结果将是一维三角形或二维金字塔。如果您现在在此数据上叠加一个小波纹,您仍然只会看到三角形或金字塔。
但如果减去均值,triangle/pyramid 就会消失,只剩下波动的自相关。这可能就是你想要的。
请注意两个图形的颜色条比例不同。您不太可能在第一幅图中看到第二幅图的底层结构,其中金字塔结构占主导地位。
因此,简而言之,对于零填充自相关,您可能希望减去平均值作为计算的第一步。