Funktionen > Bildverarbeitung > Transformationsbereich > Beispiel: Filtern im Fourier-Transformationsbereich
  
Beispiel: Filtern im Fourier-Transformationsbereich
Verwenden Sie die Funktionen funconv, matconv, funcdeconv und matdeconv, um ein Bild mit einer Funktion (f) zu falten bzw. zu entfalten oder zu maskieren (E), indem die beiden in der Ortsfrequenz miteinander multipliziert werden (Fourier-Transformationsbereich). Das Filtern im Frequenzbereich kann je nach gewählter Funktion oder Maske zu verschiedenen Glättungs-, Kantenerkennungs- und periodischen Rauschminderungsoperationen führen. Mathematisch ist es häufig effizienter, im Transformationsbereich zu filtern, oder einfacher, Filter zu definieren, anstatt im Bildbereich eine Faltung zu verwenden.
Weitere Informationen zur Verwendung dieses Beispiels finden Sie unter Bildverarbeitungsbeispiele.
funconv
Verwenden Sie diese Funktion, um ein Bild M mit einer Funktion in einer Ortsfrequenz zu filtern. Die reellwertige Funktion f wird verwendet, um eine Maske N zu konstruieren, die dieselbe Größe wie M aufweist. M wird Fourier-transformiert und dann Ausdruck für Ausdruck mit der Maske multipliziert.
Die Maske wird konstruiert, indem Argumente an f übergeben werden, die den normalisierten Abstand von der linken oberen Ecke von M angeben. Dieser Prozess wird bis zur Mitte der Maske fortgesetzt. Danach wird die Maske symmetrisch in vier Teile geteilt. Dieser Prozess wird verwendet, da die obere linke Ecke den Wert DC hat (Nullfrequenz).
1. Beginnen Sie beim Konstruieren einer Maske mit der Definition der Konstruktionsmatrix M.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
2. Ermitteln Sie die Pixel, die die Mitte der Bildmatrix darstellen.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
3. Erstellen Sie neue Bereichsvariablen, die die Werte von der linken oberen Ecke zur Bildmitte darstellen.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
4. Verwenden Sie die definierten Bildvariablen und eine Maskierungsfunktion, um den linken oberen Quadranten der Maske zu erstellen.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Der (0, 0) Eintrag lautet f(0) und der (r, c) Eintrag lautet f(1).
Die Maske wird konstruiert, indem Argumente (der normalisierte Abstand von der linken oberen Ecke von M) an f übergeben werden. Dieser Prozess wird bis zur Mitte der Maske fortgesetzt. Danach wird die Maske symmetrisch in vier Teile geteilt. Dieser Prozess wird verwendet, da die obere linke Ecke den Wert DC hat (Nullfrequenz).
5. Konstruieren Sie den Rest der Maskenmatrix mit funconv.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Wenn die Faltung den Bildmaßstab erweitert, können Sie die Ausgabematrix auf den Bereich [0, 255] skalieren.
funcdeconv
Diese Entfaltungsfunktion verwendet ein Bild und eine Funktion für einen Frequenzbereich und entfaltet sie.
Das letzte Argument von funcdeconv e ist ein kleiner Term, der zu den Nennern von allen Ausdrücken während der Routine hinzugefügt wird. Geben Sie als Startpunkt den Wert 0 für e ein. Wenn eine Fehlermeldung in Bezug auf Division durch Null angezeigt wird, geben Sie einen kleinen Wert für e ein.
1. Rufen Sie die Funktion funcdeconv auf.
Zum Kopieren dieses Ausdrucks klicken
2. Bewerten Sie DE, um das Ergebnis von funcdeconv anzuzeigen und mit der ursprünglichen Matrix zu vergleichen.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
matconv
Die matconv Funktionen führen dieselben Frequenzbereichsmultiplikation durch und werden zu funconv transformiert. Sie akzeptieren jedoch eine Maske als Eingabe anstelle einer Funktion. Die Maske muss dieselbe Größe wie das ursprüngliche Bild aufweisen. Sie geben nur den linken oberen Quadranten der Maske an.
1. Lesen Sie ein Musterbild ein.
Zum Kopieren dieses Ausdrucks klicken
2. Zählen Sie die Zeilen und Spalten in der Bildmatrix.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
3. Definieren Sie die Abmessungen einer Maske.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
4. Definieren Sie die Maske C.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
* 
Sie können den folgenden Hochpassfilter für C ausprobieren:
Zum Kopieren dieses Ausdrucks klicken
5. Wenden Sie matconv auf R und C an.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
R
C
W
(times.bmp)
(matrix_ii_jj.bmp)
(times_mat.bmp)
matdeconv
Verwenden Sie matdeconv, um das ursprüngliche Bild wiederherzustellen. Da die Entfaltung möglicherweise die Teilung durch Elemente mit einer Intensität von null einschließt, wird e zum Nenner von jedem Bruch hinzugefügt, um dieses Problem zu lösen.
Zum Kopieren dieses Ausdrucks klicken
Zum Kopieren dieses Ausdrucks klicken
(matdeconv.bmp)
Sie können mit anderen Filterfunktionen experimentieren, müssen dabei jedoch berücksichtigen, dass die linke obere Ecke der Maske den niedrigen Frequenzen entspricht und die rechte untere Ecke den hohen Frequenzen. Probieren Sie unterschiedliche Bilder aus.