我只是想熟悉scipy.ndimage,我无法弄清楚interpolate.convolve和interpolate.correlate是如何不同的。
In [24]: a
Out[24]:
array([[ 0., 1., 2.],
[ 3., 4., 5.],
[ 6., 7., 8.],
[ 9., 10., 11.]])
In [25]: filt=array([[0,1,0],[1,2,1],[0,1,0]])
In [26]: convolve(a,weights=filt)
Out[26]:
array([[ 4., 9., 14.],
[ 19., 24., 29.],
[ 37., 42., 47.],
[ 52., 57., 62.]])
In [27]: correlate(a,weights=filt)
Out[27]:
array([[ 4., 9., 14.],
[ 19., 24., 29.],
[ 37., 42., 47.],
[ 52., 57., 62.]])
In [28]: correlate == convolve
Out[28]: False
它们完全一样吗?
答案 0 :(得分:0)
卷积[f(x),g(x)] =相关性[f(x),g(-x)]
Correlation仅在将内核移动到图像上时发生。
Convolution是一个数学概念(也在物理学中使用),例如在Fourier Transformation或计算probability density of quantum mechanical particles/wave时发挥作用。