我想在GPU上计算图像的自相关。 但是,当我使用cupy correlate函数时,得到的结果与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函数相同的结果
相关问题 更多 >
编程相关推荐