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.