Fourier Transform y Fourier Descriptors para extraer características de formas en Java
Estoy tratando de construir un sistema simple para reconocer formas simples utilizando los descriptores de Fourier: estoy usando esta implementación de la transformación rápida de Fourier en mi programa: (enlace a continuación)
http://www.wikijava.org/wiki/The_Fast_Fourier_Transform_in_Java_%28part_1%29
<code>fft(double[] inputReal, double[] inputImag, boolean direction) </code>
las entradas son: parte real e imag (que son esencialmente las coordenadas x, y del parámetro de límite que tengo) y las salidas son los números reales e imag transformados.
Pregunta: ¿Cómo puedo usar la salida (transformada real, imag) como descriptores invariables de mis formas simples?
Esto fue lo que pensé:
calcularR = sqrt( real^2 + imag^2 )
para cada n pasos.dividir cadaR
porR[1]
= El factor de normalización para hacerlo invariante.El problema es que obtengo valores R muy diferentes para imágenes ligeramente diferentes (como rotaciones ligeras aplicadas, etc.)
En otras palabras :
Mis descriptores no son invariantes ... Creo que estoy haciendo algo mal al obtener el valor R