Kantenfilter Sobel < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Aufgabe | Lesen Sie das Bild Buch.jpg ein und wandeln Sie das RGB-Bild in ein Grauwertbild um. Wenden Sie auf das Bild einen Sobelfilter an, um die Kanten des Bildes herauszufiltern.
Für den Sobel-Filter ermittelt die Filterantwort in horizontaler Gx und vertikaler Gy Richtung.
Danach berechnen Sie ein Gradientenbild mit folgender Gleichung:
||(Gx,Gy)|| = |Gx| + |Gy|
Erstellen Sie ein Binärbild/Kantenbild aus dem Gradientenbild, wobei 1 die Kanten und 0 der Rest sein soll. Wählen Sie dafür einen sinnvollen Schwellwert für das Bild.
Zeigen Sie das Endergebnis und die Zwischenergebnisse in Bildern an.
Hinweis: Beim Einlesen eines Bildes (imread(...)) wird das Bild in einer uint8 Matrix abgespreichert, ABER der Sobel-Operator erzeugt unter anderem negative Werte.
Wichtig:
Sie müssen den Sobel-Filter selbst implementieren, wie in der Angabe beschrieben - edge ist nicht erlaubt. Für die Faltung können Sie Matlab-Funktionen verwenden (conv2, imfilter). Die Sobel-Kernel können Sie mit fspecial erstellen. |
Hallo zusammen
Ich versuche schon seit einiger Zeit dieses Beispiel zu lösen, komme aber auf keinen grünen Zweig.
Das Bild einzulesen und daraus ein Grauwertbild zu machen ist ja kein Problem. Jedoch schaffe ich es nicht den Sobelfilter selbst zu implementieren, da ich ja edge nicht verwenden darf.
Und was mache ich mit dem Hinweis, dass das Bild in einer unit8Matrix abgespeichert wird???
Kann mir da jemand bitte weiterhelfen?
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Dateianhänge: Anhang Nr. 1 (Typ: jpg) [nicht öffentlich]
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 00:20 Di 13.12.2011 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|