Transformacja Fouriera i deskryptory Fouriera do wyodrębniania cech kształtów w Javie

Próbuję zbudować prosty system do rozpoznawania prostych kształtów przy użyciu deskryptorów Fouriera: Używam tej implementacji transformacji Fast Fourier w moim programie: (link poniżej)
http://www.wikijava.org/wiki/The_Fast_Fourier_Transform_in_Java_%28part_1%29

<code>fft(double[] inputReal, double[] inputImag, boolean direction)
</code>

wejściami są: część rzeczywista i część wyobrażeniowa (które są zasadniczo x, y współrzędne parametru granicznego, który mam), a wyjściami są przekształcone liczby rzeczywiste i imagowe.

pytanie: Jak mogę wykorzystać dane wyjściowe (przekształcone rzeczywiste, imag) jako niezmienne deskryptory moich prostych kształtów?

Tak myślałem:

obliczaćR = sqrt( real^2 + imag^2 ) dla każdego N kroków.podzielić każdyR przezR[1] = współczynnik normalizacji, aby stał się niezmienny.

Problem polega na tym, że otrzymuję bardzo różne wartości R dla nieco różnych obrazów (takich jak niewielkie obroty itp.)

Innymi słowy :
Moje deskryptory nie są niezmienne ... Myślę, że robię coś złego z uzyskaniem wartości R.

questionAnswers(2)

yourAnswerToTheQuestion