小编Cup*_*fee的帖子

Python中高效的2D互相关?

我有大小的两个阵列(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)
Run Code Online (Sandbox Code Playgroud)

显然,当输入包含许多图像时,这非常慢,并且在以下情况下将成为总运行时间的重要部分: (m,m) << n.

显而易见的优化是跳过循环并将所有内容直接馈送到已编译的相关函数。目前,我正在使用scipy的correlate2d。我环顾四周,但未找到任何允许沿某个轴或多个输入进行关联的功能。

关于如何进行scipy的correlate2d工作或替代方法的任何提示?

python optimization scipy

5
推荐指数
1
解决办法
1874
查看次数

标签 统计

optimization ×1

python ×1

scipy ×1