Zum Inhalt springen

Diskussion:Sobel-Operator

Seiteninhalte werden in anderen Sprachen nicht unterstützt.
aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 28. August 2009 um 01:56 Uhr durch CopperBot (Diskussion | Beiträge) (Bot: Signaturnachtrag für Beitrag von 80.134.20.218: ""). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Letzter Kommentar: vor 15 Jahren von 80.134.20.218 in Abschnitt Faltung

Sobel-Operator ein Algorithmus ?

Meiner Meinung nach ist der Sobel-Operator kein Algorithmus und es ist auch falsch in als solches zu bezeichnen. Der Sobel-Operator ist ein Filter der zur Kantendetektion eingesetzt wird. Er wird evtl. in einem Algorithmus zur Kantendetektion (zb. Canny-Algorithmus) benutzt ist aber selbst keiner. --f .riedel 16:21, 17. Sep 2006 (CEST)

Hmm stimmt eigentlich, habe das geändert --Ma-Lik 20:38, 17. Sep 2006 (CEST)

Nun ist der Sobel-Operator wieder zu einem Algorithmus geworden... :-( Ich hätte mal gerne eine Begründung dafür. Ich finde es ignorant einfach etwas zurückzuändern ohne an der Diskussion teilzunehmen, oder zumindest zu erklären warum man meint, dass ein Operator ein Algorithmus ist. Evtl. ist es auch nicht richtig den Sobel-Operator als Filter zu bezeichnen, aber ein Algorithmus ist er sicher nicht. Ein Operator ist ein Operator. Ich würde ja auch keinen Plus-Operator (+) als Algorithmus bezeichnen, oder ? --f .riedel 10:45, 23. Apr. 2007 (CEST)Beantworten

Ich habe das wieder in "Filter" geändert, da ein Operator kein Algorithmus ist. Man kann evtl. vom Sobel-Algorithmus sprechen, der nichts anderes macht als den Sobel-Operator anzuwenden und evtl. einen Schwellwert zu wählen, allerdings heißt dieses Lemma hier "Sobel-Operator" und nicht "Sobel-Algorithmus".
--Oxygene 21:12, 13. Mai 2007 (CEST)Beantworten

Fehler in der Formel?

Meines Erachtens ist die Formel für den Sobel-Operator falsch. Der Faktor 1/8 vor der Matrix ist überflüssig. So habe ich es zumindest in einer Vorlesung zur Bildverarbeitung gelernt, ebenso steht es auf der englischsprachigen Wikipedia-Seite ([1]) sowie in einer anderen Quelle ([2]). Dementsprechend bin ich dafür, dass dies geändert wird. --Stultissimum 20:32, 2. Jun 2006 (CEST)

Dieser stellt doch nur eine Normierung dar, da ansonsten im bearbeiteten Bild hohe Werte entstehen können, die nicht im Bild dargestellt werden können. Allerdings findet bei z.B. OpenCV diese Normierung nicht statt, da das Zielbild dort einfach in seinem Datenbereich erweitert wird. Im Jähne "Digital Image Processing (S.350)" wird die Matrize jedoch mit Normierung dargestellt, daher habe ich dieses Buch jetzt auch als Quelle aufgeführt--Ma-Lik 11:23, 3. Jun 2006 (CEST)
Der Sobel-Operator kann aber auch negative Werte erzeugen, die selbst mit der Normierung nicht verhindert werden können. Soweit ich weiß, sind sowohl diese negativen Werte als auch größere Werte, die den Bildbereich sprengen, gesondert zu betrachten.
Wenn eine Quelle (von vielen) den Operator mit einer Normierung darstellt, viele andere aber nicht, dann sollte dies meines Erachtens aber zumindest einmal erwähnt werden (denn selbst eine Quelle kann mal falsch liegen). --Stultissimum 18:02, 3. Jun 2006 (CEST)
Gut dann würde ich sagen, wir nehmen den Normierungsfaktor raus und schreiben danach das es teilweise üblich ist mit einem Normierungsfaktor zu rechnen. Allerdings würde die Quelle dann nicht mehr passen. Hast du evtl ein Buch zur Hand indem es anders gelehrt wird? Websites sind als Quelle ja ein wenig unschön, falls nicht erwähne eine von den oberen Websites. Meinen Segen hast du jetzt..--Ma-Lik 18:23, 3. Jun 2006 (CEST)
Mit Büchern kann ich leider nicht dienen, allerdings mit anderweitiger Literatur. In dem Paper "Edge and Mean Based Image Compression" von U.Y. Desai u.a. ([3]) wird der Sobel-Operator kurz wiederholt, ebenso in "Classical Feature Detection" ([4]). In diesen beiden Veröffentlichungen wird der Sobel-Operator allerdings mit einem Vorzeichentausch versehen. Dies spielt zwar keine große Rolle, wenn es darum geht, Kanten zu finden, lässt sich aber dennoch erwähnen.
Eine weitere Quelle (leider ebenfalls kein eigenständiges Buch) bietet etwa ein Skript einer Vorlesung zum Thema Bildverarbeitung ([5]). Hier wiederum ist der Sobel-Operator ohne ein Vertauschen der Vorzeichen aufgeführt.--Stultissimum 21:15, 3. Jun 2006 (CEST)
Im Buch "Digital Image Processing" von Rafael C. Rodiguez wird der Sobel Operator auch ohne Normierung verwendet, allerdings wird dort die richtungsunabhängige Information (die eigentlich Gradient heisst) nicht mittels (x^2+y^2)^1/2 berechnet, sondern mit abs(x)+abs(y). Im Allgemeinen sind alle Versionen, ob mit Normierung oder Ohne, ob mit gespiegelten Sobel Operatoren oder ohne Richtig! Begründung kann in "Digitale Bildverarbeitung" von Bernd Jähne nachgelesen werden. Die veränderte Berechnung des Gradienten wäre als Alternative einzufügen, da sie wesentlich weniger Rechenarbeit benötigt als Quadrieren und Radizieren.--s_jaeckel 12:15, 25. März 2009 (CEST)
Die Normierung ist wichtig, wenn es darum geht, den Gradienten korrekt zu schätzen. Wenn man nur eine Edge-Map erstellen will, kann man auf die Normierung verzichten. Der Sobel-Operator selbst enthält daher keine Normierung, aber in guten Büchern ist sie trotzdem angegeben. (nicht signierter Beitrag von 80.134.20.218 (Diskussion | Beiträge) 01:26, 28. Aug. 2009 (CEST)) Beantworten

Gradientenrichtung

Noch ein Hinweis zur praktischen Anwendung: Die Formeln sind schön und gut. Aber wenn man mit dem Beispielbild versucht die Winkel der (offensichtlichen) Kanten im Bild zu plotten, sollte man darauf achten, dass sich in Flächen unsinnige / nicht signifikante Werte ergeben. Die kann man aber mit einem Threshold über G herausfiltern. Blart 12:04, 3. Jun. 2009 (CEST)Beantworten

Eigentlich sind die Formeln Eigenschaften des Gradienten und sollten meines Erachtens dort beschrieben werden. (nicht signierter Beitrag von 80.134.20.218 (Diskussion | Beiträge) 01:26, 28. Aug. 2009 (CEST)) Beantworten

Faltung

Verstehe ich das richtig: Der Faltungsoperator ist zu verstehen als

Falls ja ist der Link zur Faltung falsch. Der verlinkte Artikel erklärt Faltung im Sinne des (diskreten) Faltungsintegrals; nach der dortigen Definition wäre die Faltung von oben und damit gar nicht definiert. Oder soll die Matrix durch 0 fortgesetzt werden? Dann ergibt's wieder Sinn - das sollte dann aber irgendwo stehen. -- Pberndt (DS) 23:57, 13. Jul. 2009 (CEST)Beantworten

Alle Werte außerhalb des angegebenen Bereichs des Faltungskernels werden als 0 vorausgesetzt. Die Faltung ist aber auch in den Randbereichen des Bildes nicht definiert. Hier gibt es mehrere Möglichkeiten, das Problem zu lösen. Entweder werden nicht existente Pixel als Nullpixel angesehen, oder die Randpixel werden dupliziert, oder die Bildfunktion wird als zyklisch betrachtet. All das hat aber nichts mit dem Sobel-Operator zu tun, sondern gehört zur linearen Faltung und damit meines Erachtens nicht in diesen Artikel. (nicht signierter Beitrag von 80.134.20.218 (Diskussion | Beiträge) 01:26, 28. Aug. 2009 (CEST)) Beantworten