Kennt sich jemand mit der 2D-FFT aus

OP #1303533
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?
#1304198
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?
Gast #1306391
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren