WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Was ist die Fourier Transformation?

 

RoyalFlush
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 82
Anmeldedatum: 27.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.02.2011, 06:47     Titel: Was ist die Fourier Transformation?
  Antworten mit Zitat      
Hallo zusammen,

ich möchte bitte jemanden höflich bitten mir die Funktionsweise und Anwendungsbereiche der Fourier Transformation zu erklären.

Ich arbeite recht viel mit Bild- und Signalverarbeitung und höre immer wieder davon.

Wozu kann ich die Fourier Transformation in der Bildverarbeitung brauchen, was kann man alles damit anstellen?


Danke für Eure Zeit!
MfG
Private Nachricht senden Benutzer-Profile anzeigen


Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 04.02.2011, 10:58     Titel:
  Antworten mit Zitat      
Moin RoyalFlush,

die FFT gehört zu den "Transformationen" und ist damit nicht die einzige. Du wechselst vom Orts- in den Frequenzbereich, von der bekannten Wertedarstellung in komlexe Werte. Im Netz überaus gut dokumentiert. Wenn Du im Ortsbereich Dir 1 Position suchst, erhältst Du den Wert des Pixel und seine Lage. Im Frequenzbereich erhältst Du an dieser Stelle eine Vielzahl gleicher Amplituden. Um Bilder zu vergleichen, z. B. in der Zugangskontrolle oder Fingerabdrücke, erhältst Du im Frequenzbereich eine Vielzahl von Vergleichswerte. Es ist schon ungewöhnlich und daher aussagekräftig, wenn diese Werte überein stimmen.

Du kannst damit z.B. periodische Störungen in Bildern entfernen, die sich in der normalen Bildbearbeitung überhaupt nicht entfernen lassen. Beeindruckend finde ich die Darstellung, wie sich ein Bild aus Frequenzen aufbaut. Also nicht oben links mit Pixel für Pixel beginnend, sondern im Zentrum, beginnend mit der Amplitude 1. Siehe Dir mal folgedes Beispiel an:

Code:
I=imread('cameraman.tif');
freqcomp(I,300,0.1);


Die Funktion findest Du hier:

http://www.csse.uwa.edu.au/~pk/Rese...../FrequencyFilt/freqcomp.m

Ich habe Dir mal folgendes Beispiel "vorbereitet":

Code:
I=imread('Lena mit Störungen.tif');
figure; imshow(I)
I2 = fftshift(fft2(double(I)));
figure; imshow(log(abs(I2)),[]);
impixelinfo
I2(171:186,256:259)=0;
I2(335:343,256:259)=0;
I3 = ifft2(ifftshift(I2));
figure; imshow(log(abs(I2)))
figure; imshow(log(abs(I2)),[]);
figure; imshow(uint8(I3))


Du siehst, wo die Störungen representiert sind und welche noch besetigt werden müssen.

Viele Grüße

Hubertus

Lena mit Störungen.tif
 Beschreibung:

Download
 Dateiname:  Lena mit Störungen.tif
 Dateigröße:  273.1 KB
 Heruntergeladen:  2392 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
cheepy
Forum-Anfänger

Forum-Anfänger


Beiträge: 36
Anmeldedatum: 16.02.10
Wohnort: Emden
Version: ---
     Beitrag Verfasst am: 04.02.2011, 18:18     Titel:
  Antworten mit Zitat      
man kann sogar Mustererkennung, Schritterkennung machen, wenn man gut beherrschen kann.
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 04.02.2011, 18:29     Titel:
  Antworten mit Zitat      
Moin cheepy,

ja, genau! Das Ganze war hier nur der minimale Einstieg. Vor Kurzem wurden hier im Forum Buchstaben im Bild gesucht. Wenn Du also ein Beispiel hast, wäre das vielleicht von Interesse.

Viele Grüße

Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
cheepy
Forum-Anfänger

Forum-Anfänger


Beiträge: 36
Anmeldedatum: 16.02.10
Wohnort: Emden
Version: ---
     Beitrag Verfasst am: 04.02.2011, 21:48     Titel:
  Antworten mit Zitat      
schau dir mal das Thema "Fourier Transform" (kannst direkt in Suchfeld so eingeben) in Matlab-Help, ganz unten der Beispiel, da zeigen die, wie sie Buchstabe a gesucht haben. Leider habe ich kein anderes Beispiel, bzw. kein der hilfreich ist.
Private Nachricht senden Benutzer-Profile anzeigen
 
RoyalFlush
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 82
Anmeldedatum: 27.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.02.2011, 04:15     Titel:
  Antworten mit Zitat      
Danke fuer Eure Antworten!

Mustererkennung klingt sehr interresant, das ist genau an was ich gerade Arbeite.

Ich habe im Anhang ein Bild, auf dem viele "Kreuze" mit verschiedenen Orientierungen zu sehen sind. Ich wuerde gerne diese Kreuze finden und deren Orientierung bestimmen.

Wuerde das mit der Fourier Transformation funktionieren?


Vielen Dank!

b.png
 Beschreibung:

Download
 Dateiname:  b.png
 Dateigröße:  969.31 KB
 Heruntergeladen:  2336 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
cheepy
Forum-Anfänger

Forum-Anfänger


Beiträge: 36
Anmeldedatum: 16.02.10
Wohnort: Emden
Version: ---
     Beitrag Verfasst am: 07.02.2011, 16:11     Titel:
  Antworten mit Zitat      
Leider kenne ich mich mit Fourier Transform nicht so gut aus, steht auf meine ToDo für mein nächsten Privatprojekt. Bisher hatte ich nur einmal damit gearbeitet und die aufgabe war wesentlich einfach. Ich weis nur das jeder Muster erzeugt eine Frequenz und wenn diese Frequenz bekannt ist, dann diese rausgefiltert werden. Aber dazu musst du die Frequenz erstmal finden. Weis nicht, vermutlich für diesen Beispiel etwas aufwendig. In deinem Bild sind die Kreuze alle unterschiedliche und deshalb werden die vermutlich unterschiedliche Frequenzen haben. Hast du nicht schon an anderen Lösungsweg gedacht?
Was sagen die anderen dazu?
Private Nachricht senden Benutzer-Profile anzeigen
 
Scriptor
Forum-Century

Forum-Century


Beiträge: 217
Anmeldedatum: 22.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.02.2011, 02:09     Titel:
  Antworten mit Zitat      
Ich würde mich auf Ecken konzentrieren. Jedes Kreuz hat vier Ecken und jede Ecke (je eckiger sie ist) hat ein bestimmtes Spektrum, denn jede Ecke hat Oberwellen (Vgl. Dreieckspannung). Also würde ich mir einen bestimmten Bildbereich mit einer bestimmten Ecke heraussuchen, und den Rest null setzen. (Ganz wichtig, dass alles rundherum genullt und nicht komplett gelöscht wird. Dieses Spektrum würde ich mir genau anschauen und mit einer fft eines kompletten Bildes vergleichen.

Nun hätte ich zwei Spektren, einmal nur die Ecke und einmal komplett. Wenn du siehst, dass beiden Spektren signifikante Peaks gleichförmig sind und im Gesamtspektrum um ein Vielfaches höher, dann kannst du davon ausgehen, dass es funktioniert, Ich würde mir die Peaks nehmen, die Anzahl des Vielfachen der charakteristischen Peaks im Verhältnis von Gesamt und Einzeleckenspektrum und die Anzahl der Ecken würde die Anzahl der Kreuze bedeuten, natürlich nicht wenig fehlerbehaftet, aber so würde ich es probieren.

Mfg, Ich
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.