0 Daumen
1,7k Aufrufe

Aufgabe:

Ich soll in Matlab ein Bild hinzufügen und ein Rauschen damit erzeugen.

Dann muss ich mit Hilfe von Hochpassfilter und Tiefpassfilter dieses Rauschen filtern.

Gegebene Matrix:

gegeben:
\( h_{t p}=\left[\begin{array}{ccc} \frac{1}{16} & \frac{1}{16} & \frac{1}{16} \\ \frac{1}{16} & \frac{1}{2} & \frac{1}{16} \\ \frac{1}{16} & \frac{1}{16} & \frac{1}{16} \end{array}\right], h_{h p}=\left[\begin{array}{ccc} 0 & 1 & 0 \\ 1 & -4 & 1 \\ 0 & 1 & 0 \end{array}\right] \)

Avatar von

1 Antwort

0 Daumen

Antwort mit KI erzeugt

Bild im Matlab mit Hochpassfilter und Tiefpassfilter filtern

Um ein Bild in Matlab zu filtern, muss man zuerst das Bild in Matlab importieren, ein Rauschen erzeugen und dann das Bild mit Hilfe von Hochpassfilter (HPF) und Tiefpassfilter (TPF) filtern. Die gegebenen Filterkerne lauten:

- Tiefpassfilter \(h_{tp}\):
\( h_{tp}=\left[\begin{array}{ccc} \frac{1}{16} & \frac{1}{16} & \frac{1}{16} \\ \frac{1}{16} & \frac{1}{2} & \frac{1}{16} \\ \frac{1}{16} & \frac{1}{16} & \frac{1}{16} \end{array}\right] \)

- Hochpassfilter \(h_{hp}\):
\( h_{hp}=\left[\begin{array}{ccc} 0 & 1 & 0 \\ 1 & -4 & 1 \\ 0 & 1 & 0 \end{array}\right] \)

Schritt-für-Schritt-Anleitung:

1. Bild Importieren: Lade das Bild in Matlab mit der Funktion imread().

matlab
Bild = imread('Bildpfad.jpg');


2. Bild in Graustufen umwandeln: Es ist oft einfacher, mit einem Graustufenbild zu arbeiten, wenn man Bildverarbeitungsalgorithmen anwendet.

matlab
BildGrau = rgb2gray(Bild);


3. Rauschen hinzufügen: Füge dem Bild Rauschen hinzu. Eine Möglichkeit ist die Verwendung der Funktion imnoise().

matlab
BildRausch = imnoise(BildGrau,'salt & pepper',0.02); % 2% Salt-and-Pepper Rauschen.


4. Filterung mit Tiefpassfilter \(h_{tp}\): Nutze den Tiefpassfilter, um das Bild zu glätten und Rauschen zu reduzieren.

matlab
TPF_Bild = imfilter(BildRausch, h_tp, 'conv');


5. Filterung mit Hochpassfilter \(h_{hp}\): Nutze den Hochpassfilter, um Kanten und hochfrequente Inhalte im Bild hervorzuheben.

matlab
HPF_Bild = imfilter(BildRausch, h_hp, 'conv');


Wichtige Hinweise:

- Beim Anwenden der Filterung achte darauf, dass das Bild im geeigneten Format vorliegt (z.B. double oder uint8), da dies die Ergebnisse beeinflussen kann. Wenn Fehler auftreten, konvertiere das Bild mit im2double() oder im2uint8().

- Wenn du imfilter() verwendest, kannst du mit verschiedenen Optionen in dritten Argument herumspielen, um die Randbedingungen der Filterung anzupassen, z.B. 'same', 'replicate', 'conv', etc.

- Die Filterkerne sind sorgfältig zu wählen, basierend auf dem, was man erreichen möchte (Rauschreduktion, Kantenerkennung, etc.).

Um die Ergebnisse zu visualisieren, kannst du imshow() verwenden:

matlab
figure, imshow(BildRausch), title('Rauschbild');
figure, imshow(TPF_Bild), title('Nach Tiefpassfilter');
figure, imshow(HPF_Bild), title('Nach Hochpassfilter');


Dies liefert ein grundlegendes Verfahren für das Filtern von Bildern in Matlab unter Verwendung von spezifischen Tiefpass- und Hochpassfiltern, wie sie in der Aufgabenstellung angegeben sind.
Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Nanolounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community