|
|
Faltung im Frequenzbereich |
|
Pheeenix |

Forum-Anfänger
|
 |
Beiträge: 29
|
 |
|
 |
Anmeldedatum: 01.07.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.07.2010, 14:59
Titel: Faltung im Frequenzbereich
|
 |
|
 |
|
Hallo,
ich versuche gerade eine Faltung eines Bildes im Frequenzraum durchzuführen komme aber nicht weiter. Vielleicht könnt ihr mir weiterhelfen.
Ich habe ein nxm Bild welches ich "unscharf" machen möchte. Dazu will ich einen 5x5 Filter verwenden. Nun geht das ganze im Ortsbereich relativ leicht.
So hier kommt das gewünschte Ergebnis raus. Da ich das ganze später auch in C++ testen will und ich weiters testen will ob mir eine Berechnung im Frequenzbereich einen Zeitvorteil verschafft wollte ich nun das ganze im Frequenzbereich testen. Hier kommt aber nicht das gewünschte Ergebnis!?!?
Eine Faltung im Zeitbereich ist ja eine Multiplikation im Frequenzbereich, also wollte ich einfach die PSF und das Bild transformieren, Multiplizieren, rück transformieren und fertig. Nun stimmt leider mein Ergebnis nicht
was da jetzt raus kommt ist einfach ein weißes Bild!? Kann das daher kommen das die werte nach dem Rücktransformieren noch immer in real und Imaginärteil aufgeteilt sind? wenn ja wie kann ich Rück-transformieren sodass ich wiederum nur reelle werte habe!?
Vielen Dank für euer Hilfe
Edit by Martin: Bitte keine Doppelpostings oder sogar Dreifach-Postings. Danke!
|
|
|
|
|
Hubertus |

Forum-Meister
|
 |
Beiträge: 1.034
|
 |
|
 |
Anmeldedatum: 08.01.09
|
 |
|
 |
Wohnort: Hamburg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.07.2010, 16:24
Titel:
|
 |
Hallo erstmal,
mit dem Befehl:
solltest Du wieder normale Werte erhalten.
Hubertus
|
|
|
Pheeenix |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 29
|
 |
|
 |
Anmeldedatum: 01.07.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.07.2010, 16:40
Titel:
|
 |
Danke für den Hinweis!
Ich hab zwar jetzt wieder "normale" Werte allerdings stimmt das Bild ganz und gar nicht.....aus einen Schwarz weiß Bild wurde jetzt ein blaues Bild und kein verschwommenes, wie es im Zeitbereich erzeugt wird?
Irgendwelche Ideen, Tipps, Hinweise?
|
|
|
Hubertus |

Forum-Meister
|
 |
Beiträge: 1.034
|
 |
|
 |
Anmeldedatum: 08.01.09
|
 |
|
 |
Wohnort: Hamburg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.07.2010, 16:47
Titel:
|
 |
Hänge an Dein image-Befehl: colormap gray oder gehe über imshow.
Das verschwommene Bild müßte mit Deinem Kernel zusammenhängen.
Hubertus
|
|
|
LittleX |

Forum-Guru
|
 |
Beiträge: 494
|
 |
|
 |
Anmeldedatum: 14.05.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.07.2010, 09:51
Titel:
|
 |
Hallo,
wenn Du im Frequenzbereich filtern willst, musst Du sowohl Dein Bild mit dem Befehl fft in den Frequenzbereich bringe, als auch Deine Filtermaske. Dabei muss die erzeugte Filtermaske genauso groß sein wie das Bild im Frequenzbereich.
Wenn Du die Image Processing Toolbox hast, kannst Du zum Konvertieren Deiner Filtermaske den Befehl
verwenden.
Wenn nicht kannst Du mit fft arbeiten, musst aber die entsprechende Länge mit angeben:
Die Filterung wird dann durch elementweises multiplizieren durchgeführt:
Viele Grüße,
LittleX
|
|
|
Pheeenix |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 29
|
 |
|
 |
Anmeldedatum: 01.07.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.07.2010, 12:43
Titel:
|
 |
Danke, das hat super funktioniert! Ich bekomme das gewünschte Ergebnis.
Nun hätte ich gern das ganze invers gefaltet. Ich hab mir dabei gedacht, ich lese einfach das vorher gefaltete Bild ein, und führe statt einer Punktweisen Multiplikation eine punktweise Division mit meiner Faltungsfunktion durch.
Wenn ich das mache dann wird mir als Ausgabenbild aber immer nur schwarzes Bild angezeigt, egal ob ich den abs() oder log(abs()) Befehl verwende.
Ich bin leider schon etwas am verzweifeln
Hat hier irgendjemand eine Idee was ich bei der Darstellung falsch mache?
Schon mal vielen Dank im Voraus!
|
|
|
Hubertus |

Forum-Meister
|
 |
Beiträge: 1.034
|
 |
|
 |
Anmeldedatum: 08.01.09
|
 |
|
 |
Wohnort: Hamburg
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.07.2010, 13:27
Titel:
|
 |
Moin,
versuche mal folgende Zeile im Tausch:
Hubertus
|
|
|
Pheeenix |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 29
|
 |
|
 |
Anmeldedatum: 01.07.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.07.2010, 13:38
Titel:
|
 |
Ich denke ich habe das Problem gefunden, suche aber noch nach einer Lösung.
Nach der fft2 Operation sind die beiden Werte des Bildes sowie des Faltungskernes complex. Bei der punktweisen Division enstehen so Werte die in Matlab als -Inf angezeigt werden. Bei der ifft2 Operation werden dann alle Elemente als NAN angezeigt.
Wie kann das passieren? Die reellen Werte sind alle Positiv - wie kommt man dann auf - Inf Werte und wie kann man das vermeiden um bei der Rücktransformation "normale" Werte zu haben die auch als Bild ausgegeben werden können?
@Hubertus:
deine Codezeile brachte leider auch keine Lösung.
|
|
|
Pheeenix |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 29
|
 |
|
 |
Anmeldedatum: 01.07.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.07.2010, 06:41
Titel:
|
 |
Hab mein Problem gelöst.
Ich setzte alle durch die Transformation entstandenen Nullen auf einen Wert nahe null, oder verwende nach der Rücktransformation den floor und ceil befehl um alle +- Inf Werte zu ändern, dann kann Matlab auch diese Bilder Anzeigen.
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| RSS
Hosted by:
Copyright © 2007 - 2025
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.
|
|