mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Klassifikation einer Kontur mittels DFT


Autor: Konturfinder (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
ich habe mich mit der Klassifikation von Objekten beschäftigt und bin 
auf die Fourierdeskriptoren gestoßen um Objekte zu Klassifizieren. 
Vorhanden ist eine geschlossene Kontur eines Objektes. Die Koordinaten 
werden als Real- und Imaginärteil angesehen. Wenn man dieses Signal nun 
in den Frequenzbereich transformiert erhalte ich ein  Spektrum.


Der erste Koeffizient dieses Spektrums soll nur für den Ort und Größe 
verantwortlich sein. Da ich nie weiß wo sich mein Objekt befindet, soll 
es eine Invariante bezüglich der Größe und des Ortes des Objektes geben. 
Diese Invariante wollte ich herstellen indem ich mein Fourierspektrum 
bezüglich des ersten Koeffizienten normiere.
Doch leider bringt das nicht den gewünschten Erfolg. Ich habe 2 
Screenshots gemacht.
I.) xrmb2.net/img/images/417701.jpeg
II.) xrmb2.net/img/images/188590.jpeg
Das erste Bild ist das unnormierte Spektrum, und das Zweite mit Bild als 
normiertes Spektrum dargestellt. Ich habe wie folgt meine Koeffizienten 
auf eins mit Hilfe der komplexen Rechenregeln normiert:

Nach der Normierung sollten eigentlich die Spektren relativ gleich 
aussehen. Leider tun sie es nicht.
Habe ich einen systematischen Fehler? Oder ist das ein falsche 
Heransgehensweise bezüglich der Normierung? Oder mach ich was anderes 
falsch? ;)


Vielen Dank im Voraus!

Autor: Detlef _a (detlef_a)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Statt auf real/imag mal auf Betrag/Phase kucken !? Größe hat was mit 
Betrag zum tun, Verschiebung mit Phase. Ist aber nur ins Blaue vermutet.

Cheers
Detlef

Autor: Nils (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Konturfinder,

nur ein kurzer Hinweis:
>Das erste Bild ist das unnormierte Spektrum...
Da stimmt schon irgendetwas nicht: Wenn I) (417701.jpeg) das nicht 
normierte Spektrum ist, sollte sich 'kreis.jpeg' und 'kreisweit.jpeg' 
sowohl im Real- als auch im Imaginärteil unterscheiden. Sind die Bilder 
vertauscht, die Koordinaten der Konturen falsch oder die DFT nicht 
richtig implementiert?

Ansonsten habe ich kurz nachgeschlagen:
> Diese Invariante wollte ich herstellen indem ich mein Fourierspektrum
> bezüglich des ersten Koeffizienten normiere.
Die Vorgehensweise ist grundsätzlich richtig (bzw. Deine Zählung beginnt 
eigentlich bei Null); allerdings mit dem Hinweis, dass Rechteckraster 
für die komplexen Koordinaten zu Ungenauigkeiten führen.
Als Verbesserung dieser Methode wird in der mir vorliegenden Literaur 
die Ableitung aus dem Powerspektrum genannt.

Ich hoffe, das hilft etwas weiter.

Gruß
Nils

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.