如何使用Numpy查找两个图像之间的相关性

时间:2019-10-01 09:01:17

标签: python numpy image-processing

这受此question的启发。

我正在尝试使用Numpy查找两个灰度图像之间的相关性。使用SciPy的correlate2d,我们可以找到这个。我找到了Numpy的corrcoef,但与va}相比,结果却有所不同。因此,这个问题-Numpy是否有correlate2d个等价物?

1 个答案:

答案 0 :(得分:1)

据我所知,这产生的结果与scipy.correlate2d()相同,其中img1img2是表示灰度(即单通道)图像的2d数组:

import numpy as np

pad = np.max(img1.shape) // 2
fft1 = np.fft.fft2(np.pad(img1, pad))
fft2 = np.fft.fft2(np.pad(img2, pad))
prod = fft1 * fft2.conj()
result_full = np.fft.fftshift(np.fft.ifft2(prod))
corr = result_full.real[1+pad:-pad+1, 1+pad:-pad+1]

单像素裁切调整不是很好,但这对您来说是FFT:

我只想说scipy很好用,我强烈推荐。话虽如此,对于我尝试过的单个案例,这种方法似乎确实要快得多。