【发布时间】:2018-07-25 22:02:24
【问题描述】:
我有两个大小为(n, m, m) 的数组(n 大小为(m,m) 的图像数量)。我想在两个数组的每个对应的n 之间执行互相关。
示例:n=1 -> corr2d([m,m]<sub>1</sub>,[m,m]<sub>2</sub>)
我目前的方式在python中包含了一堆for循环:
for i in range(len(X)):
X_co = X[i,0,:,:]/(np.max(X[i,0,:,:]))
X_x = X[i,1,:,:]/(np.max(X[i,1,:,:]))
autocorr[i,0,:,:]=correlate2d(X_co, X_x, mode='same', boundary='fill', fillvalue=0)
显然,当输入包含许多图像时,这非常慢,如果(m,m) << n.,则成为总运行时间的重要组成部分
明显的优化是跳过循环并将所有内容直接提供给编译后的相关函数。目前我正在使用 scipy 的correlate2d。
我环顾四周,但没有找到任何允许沿某个轴或多个输入进行关联的函数。
关于如何使 scipy 的 correlate2d 工作或替代方案的任何提示?
【问题讨论】:
标签: python optimization scipy