Sobel

Neue Frage »

doWork() Auf diesen Beitrag antworten »
Sobel
Meine Frage:
Hallo,

Ich würde gerne wissen wie ich den Sobel bzw. Prewitt Filter auf ein Input-Bild anwende, irgendwie kapier ich das nicht so ganz..
Also ich hab (matlab schreibweise) z.b. für Prewitt Sx = [-1,0,1;-1,0,1;-1,0,1;] und Sy = [1,1,1;0,0,0;-1,-1,-1].

Die Frage ist wie wende ich jetzt diesen Filter auf eine input matrix an

Meine Ideen:
z.B. wie komme ich auf dieses Ergebnis: http://hpundt.hs-harz.de/bv_4b_neu.pdf, slide 11.

Meine Idee wäre ja die Matrizen Punktweise zu multiplizieren, aber da komme ich nicht auf das richtige Ergebniss..

Danke schon mal im Vorraus
zyko Auf diesen Beitrag antworten »
RE: Sobel
Hallo,
die genannten Sobelmatrizen sind folgendermaßen zu interpretieren und anzuwenden: Für jedes Bildpixel wird der neue Werte errechnet, indem in der 3x3 Umgebung die jeweiligen Pixelwerte mit dem zugehörigen Wert der Sobelmatrix multipliziert wird und die Produkte aufaddiert werden.
Für die Ableitng in x-Richtung ergibt sich daher:
.
Analog die Formel für die y-Richtung.
Für die Ausführung in matlab s. in matlab fspecial und imfilter.
Achtung da die Sobelmatrizen nicht normiert sind, erhält man ein Ableitungsbild, das sich von der korrekten Lösung um einen konstanten Faktor unterscheidet; denn einerseits werden die Differenzen über zwei [-1, 0 1] Pixeldistanzen berechnet und andererseits werden drei benachbarte Differenzen aufsummiert. Daraus folgt: der Normierungsfaktor ist 1/6. Der besseren Lesbarkeit wegen wird häufig bei der Angabe von Filtermatrizen auf den Filterfaktor verzichtet
doWork() Auf diesen Beitrag antworten »
RE: Sobel
Super, danke smile
Neue Frage »
Antworten »



Verwandte Themen