Método de correlação cruzada rápida em Python

Recentemente, tentei encontrar uma maneira rápida e eficiente de realizar a verificação de correlação cruzada entre dois arrays usando a linguagem Python. Depois de algumas leituras, encontrei estas duas opções:

oNumPy.correlate() método, que é muito lento quando se trata de grandes matrizes.ocv.MatchTemplate() método, que parece ser muito mais rápido.

Por razões óbvias, escolhi a segunda opção. Eu tentei executar o seguinte código:

import scipy
import cv

image = cv.fromarray(scipy.float32(scipy.asarray([1,2,2,1])),allowND=True)
template = cv.fromarray(scipy.float32(scipy.asarray([2,2])),allowND=True)
result = cv.fromarray(scipy.float32(scipy.asarray([0,0,0])),allowND=True)
cv.MatchTemplate(image,template,result,cv.CV_TM_CCORR)

Mesmo que este código seja muito simples, ele gera o próximo erro:

OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat, file /builddir/build/BUILD/OpenCV-2.1.0/src/cxcore/cxarray.cpp, line 2476
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
cv.error: Unrecognized or unsupported array type

Depois de algumas horas de tentativas frustrantes, ainda estou preso! Alguém tem alguma sugestão?

BTW, esta é a saída da minha versão em Python:

Python 2.7 (r27:82500, Sep 16 2010, 18:03:06) 
[GCC 4.5.1 20100907 (Red Hat 4.5.1-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

Obrigado a todos!

questionAnswers(2)

yourAnswerToTheQuestion