我想计算 GPU 上图像的自相关性。 但是,当我使用 cupy 关联函数时,我得到的结果与 CPU 计算的结果不同。是因为 cupyx.scipy.ndimage.correlate 通过均匀图像的自相关自动标准化结果吗?
import numpy as np
import scipy.signal as sc
import cupy as cp
import cupyx.scipy.ndimage as cnd
from matplotlib import pyplot as plt
ones = np.ones((128,128))
corr_cpu = sc.correlate2d(ones,ones)
corr_gpu = cnd.correlate(cp.array(ones),cp.array(ones))
plt.figure()
plt.imshow(corr_cpu)
plt.colorbar()
plt.title('Correlation CPU')
plt.figure()
plt.imshow(cp.asnumpy(corr_gpu))
plt.colorbar()
plt.title('Correlation GPU')
plt.show()
最佳答案
好的,找到答案了: cupyx.scipy.ndimage.correlate 使用 mode='reflect' 作为默认值,而 scipy.correlate 使用 'constant'。
因此,cupy 的“常数”现在给出与 scipy 函数相同的结果
关于python - 与丘比的自相关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59679631/