www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Kennt sich jemand mit der 2D-FFT aus


Autor: Mario Grafe (mario)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich teste zur Zeit in Matlab einige Algorithmen zur Bildtransformation.
Weiß jemand, wie ich aus dem Frequenzbild (nach Transformation eines 
Grauwertebildes) die charakteristischen Frequenzen (=Abstände) numerisch 
ermitteln kann.

Das Grauwertbild hat eine Gitterstrukur.
Nach der FFT2 und SHIFTFFT gibts 2 charakteristische Frequenzenspots in 
X und Y Richtung im Abstand zur Mitte des Bildes. Der Gitterabstand 
steht ja irgendwie im Verhältnis zur FFT2-Fenstergröße und dem Abstand 
zur Mitte des Frequenzbildes.
Ich steh irgendwie grad auf dem Schlauh. Ich möchte am Ende jedenfalls 
die Gittergröße in Pixel raus haben (X und Y Richtung).

Weiß jemand Rat?

: Verschoben durch Admin
Autor: Richard Z. (richardz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also du hast eine 2 D Matrix die eine Gitterstruktur hat. Daraus willst 
du dann den Abstand des Gitters durch die FFT berechnen?

Ich denke die FFT ist da suboptimal weil sie ja erwartet, dass es 
periodisch ändernde Signal enthält und du hast da Diracs drin. Also 
prinzipiell Überlagerungen von Exponentialfunktionen die dann die FFT 
liefert.

Was spricht gegen ein aufsummieren in X Richtung?
Dann kannst du einen threshold TH berechnen: (Punkte < TH)/(Punkte > TH) 
= Anzahl Gitterwiederholungen
oder ist das zu naiv?

Autor: Franzi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
zeig doch einmal dein Bild her.

Ich kann mis schon voestellen, dass das mit dem Muster gehen kann. Vor 
allem kann man erkennen, ob das Muster verdreht ist oder hoizonzal 
ausgerichtet ist.

Autor: Michael Lenz (hochbett)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Mario,

das ist sicher nicht anders als bei der "normalen" FFT:

N  = Anzahl der Gitterpunkte in eine Richtung
fs = 1;                 % Abtastfrequenz in Pixeln/Abtastwert
f  = 0:fs/N:(N-1)/N*fs; % Frequenzvektor in x-Richtung

Plotte das Bild und suche den Index mit dem Maximum heraus.
1/f(index) ist die Anzahl der Pixel, die eine Struktur aufweist.

Wenn es sehr genau sein soll, mußt du das Betragsspektrum interpolieren, 
beispielsweise mit einem Polynom 2. Grades.

Gruß,
  Michael

Autor: zwieblum (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
noch was: fft ist nicht rotationsinvariant. wenn das muster rotiert ist, 
ändert sich die position der maxima.

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.