Fourier-Transformation und Fourier-Deskriptoren zu extrahieren, Formen, Funktionen auf Java
Ich versuche zu bauen, ein einfaches system zu erkennen einfache Formen, die mit der Fourier-Deskriptoren:
Ich bin mit dieser Implementierung der Schnellen fourier-Transformation auf meinem Programm: (link unten)
http://www.wikijava.org/wiki/The_Fast_Fourier_Transform_in_Java_%28part_1%29
fft(double[] inputReal, double[] inputImag, boolean direction)
Eingaben sind: real und imag Teil (die im wesentlichen in x -, y-Koordinaten der Grenz-parameter habe ich)
- und Ausgänge sind die transformierten real und imag zahlen.
Frage: Wie kann ich mit dem output (transformierte real,imag ) als invariante Deskriptoren meiner einfachen Formen?
Das war, was ich dachte :
- berechnen
R = sqrt( real^2 + imag^2 )
für jedes N Schritte. - teilen jeden
R
durchR[1]
= die Normalisierung Faktor zu machen, invariant.
Das problem ist ich bekomme sehr unterschiedliche R-Werte für leicht unterschiedliche Bilder (wie das leichte Rotationen angewendet, etc)
In anderen Worten :
Mein Deskriptoren sind nicht invariant... ich denke, ich mache etwas falsch mit dem bekommen der R-Wert.
- Eine geniale Website für fourier-Reihe,nehmen Sie einen Blick auf dieses Fourier Series
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es gibt eine bestimmte Theorie, die Sie benötigen, um wissen über Fourier-Deskriptoren: es ist eine äußerst interessante Technik, die aber entwickelt werden müssen richtig. Was Sie wollen, ist die Invarianz; Invarianz bezüglich rotation, translation, vielleicht sogar affine Transformationen. Ermöglichen gute Vergleichbarkeit mit anderen sets von Fourier-Deskriptoren sollten Sie folgende Dinge in Betracht:
Hoffe, das hilft. Btw, user-made-FFT-Lösungen sind nicht vertrauenswürdig meiner Meinung nach. Gehen Sie für die Lösungen, die Bibliotheken erreichen. Wenn die Arbeit mit Bildern, OpenCV stellt die Fourier-transform-utilities.
Wenn Sie schauen, um mit verschiedenen Formen, versuchen Sie es mit verschiedenen shape-Deskriptoren aus MPEG-7-standard. Sie werden wahrscheinlich brauchen einen Klassifikator, werfen Sie einen Blick auf SVM, Boosting, Neural Networks ...: http://docs.opencv.org/modules/ml/doc/ml.html