中型阵列的互相关

时间:2012-04-04 22:25:26

标签: performance numpy cross-correlation

我有16个1D阵列,每个阵列大约有10-11百万个双精度元素。我需要在它们之间执行互相关,即1表示2,1表示3,...,1表示16,2表示3,2表示4,...,2表示16,依此类推。这在我的MacBook Intel Core 2 duo 2.4 GHz上有效率不高,4GB内存。我的问题是,如果没有人们用来克服这个问题的暴力(更快的处理器,更多的RAM),或者类似的问题,那么典型的方法是什么?谢谢!

2 个答案:

答案 0 :(得分:2)

如果你计算每个数组的傅里叶变换,你应该是 能够使用转换后的数组有效地计算每对原始输入数组之间的cross-correlation。请参阅的“属性”部分 我链接到的维基百科文章,用于使用身份。

答案 1 :(得分:1)

numpy中的互相关函数非常慢。 openCV库具有numpy友好的互相关功能。即使你试图实现频域aproach,你也不会打败openCV库,因为有更多的技巧可以加速互相关计算。我之前发布了这个:

Computing cross-correlation function?

我相信代码是基于以下文章中详述的技巧:

学家P. Lewis,“快速模板匹配”,Vision Interface,1995,vol。 95,pp.120-123。

相关问题