¿Dónde puedo encontrar una buena fuente de información que explica la puntuación correlación de fase FFT

StackOverflow https://stackoverflow.com/questions/4636868

Pregunta

He estado buscando a magnífica código fuente del OpenCV para entender el cálculo de la puntuación. Como se habrán dado cuenta que la biblioteca puede encontrar una plantilla en una imagen con una puntuación de confianza. función cvMatchTemplate da la probabilidad y la ubicación de la plantilla en la imagen.

Desde DFT es lento, I decidió usar FFTW biblioteca para la correlación de fase. Consigo la imagen, ampliado a un tamaño que es una potencia de 2, a continuación, hizo lo mismo con la plantilla, primero calcula la FFT para ambos, multiplicado los dos array, calculado la FFT inversa, por último normalizado el resultado.

Si muestro este resultado en un mapa de bits que muestra claramente la ubicación de la plantilla, sin embargo, tengo dificultades para calcular la puntuación de correlación. Traté de correr cvMatchTemplate línea por línea bajo el método depurador, no ayuda ya que la biblioteca utiliza DFT y tamaños de imagen arbitrarios. Todas las tablas utilizadas en este método (suma, sqsum etc) creado para tamaños arbitrarios y FFT utiliza potencias de dos correspondientes.

Yo agradecería cualquier información sobre la forma de calcular la puntuación de ese resultado de correlación de fase. Hay muchas fuentes que describen "toma esto, tome eso, se multiplican ellas, se ve el punto blanco en la imagen, si lo encuentras" manera. Necesito una puntuación igual cvMatchTemplate hizo.

Estoy amablemente pidiendo que me apunte a un sitio o de un documento que contiene la lógica de ese cálculo o un libro. El código fuente sería perfecto, pero no tengo esperanza de que de todos modos.

¿Fue útil?

Solución

En primer lugar, asegúrese de que no están "ampliando la imagen para una potencia de 2". Estoy seguro de que no quería decir esto, pero de todos modos con FFTW se puede calcular un tamaño arbitrario FT.

No entiendo lo que está utilizando para OpenCV. Si usted tiene la FFT, entonces es muy fácil de calcular el espectro de potencia cruzada normalizada por sí mismo, es decir, la "fórmula de correlación de fase".

Obtener la mayor FFT tamaño de las imágenes que se puede, sin olvidar a la ventana. Calcular la CPS. Una vez que tenga el aspecto superficie de correlación para el pico.

No sé lo que OPENCV ofertas de correlación de fases, aparte de FT, pero el papel que desea es

G.A. Thomas, Television Motion Measurement for DATV and Other Applications, 1987, BBC Research Department.

Otros consejos

1) FFTW puede trabajar con arrays de tamaño no poder-de-2.

2) El área temática que podría buscar / estudio es el teorema de FFT de correlación cruzada:

"la transformada de Fourier de la correlación cruzada de dos funciones es equivalente al producto de las transformadas de Fourier individuales, donde uno de ellos ha sido complejo conjugado"

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top