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.