Sobel-Operator

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Der Sobel-Operator ist ein einfacher Kantendetektions-Filter, der in der Bildverarbeitung häufig Anwendung findet und dort mithilfe der Faltung als Algorithmus eingesetzt wird (Sobel-Algorithmus). Dieser berechnet die erste Ableitung der Bildpunkt-Helligkeitswerte, wobei gleichzeitig orthogonal zur Ableitungsrichtung geglättet wird.

Der Algorithmus nutzt eine Faltung mittels einer 3×3-Matrix (Faltungsmatrix), die aus dem Originalbild ein Gradienten-Bild erzeugt. Mit diesem werden hohe Frequenzen im Bild mit Grauwerten dargestellt. Die Bereiche der größten Intensität sind dort, wo sich die Helligkeit des Originalbildes am stärksten ändert und somit die größten Kanten darstellt. Daher wird zumeist nach der Faltung mit dem Sobeloperator eine Schwellwert-Funktion angewandt. Der Algorithmus kann allerdings auch auf andere zweidimensionale Signale angewandt werden.

Aus dem Originalbild wird für jeden Bildpunkt immer nur ein Ausschnitt, genauer gesagt die Umgebung des zu betrachtenden Punktes verwendet. Dazu wird eine Matrix A definiert, deren Komponenten die Änderungsgewichtung der Umgebung vom Punkt repräsentieren. Die Matrix ist üblicherweise symmetrisch angelegt, sodass keine Änderung in der Umgebung zu einer Nullsumme führt (siehe unten). Nun werden mittels der Sobeloperatoren \mathbf{S}_x und \mathbf{S}_y die gefalteten Resultate \mathbf{G}_x und \mathbf{G}_y berechnet:


\mathbf{G}_x=\mathbf{S}_x * A = \begin{bmatrix} 
1 & 0 & -1 \\
2 & 0 & -2 \\
1 & 0 & -1 
\end{bmatrix} * A

und

\mathbf{G}_y=\mathbf{S}_y * A = \begin{bmatrix}
1 & 2 & 1 \\
0 & 0 & 0 \\
-1 & -2 & -1 
\end{bmatrix} * A

Durch Ausnutzung der Separierbarkeit kann die Rechenzeit deutlich reduziert werden.

Anschließend werden alle Komponenten der Matrix aufsummiert, um ihren Grauwert zu erhalten. Eine richtungsunabhängige Information kann man durch die Kombination beider Ergebnisse erhalten: \mathbf{G} = \sqrt{ \mathbf{G}_x^2 + \mathbf{G}_y^2 }.

Die Richtung eines Gradienten erhält man über die Formel

\mathbf{\Theta} = \operatorname{atan2}\left(\mathbf{G}_y, \mathbf{G}_x\right),

wobei atan2, der „Arkustangens“ mit zwei Argumenten ist.

Hierbei beschreibt der Wert \Theta = 0 eine vertikale Kante. Positive Werte beschreiben eine Drehung gegen den Uhrzeigersinn.

Beispielbilder[Bearbeiten]

Originalbild "Camera Obscura", das zur weiteren Berechnung verwendet wurde.
Camera Obscura mit Sobel-Operator \mathbf{G_x} gefiltert (detektiert vertikale Kanten). Da auch negative Werte entstehen, wird der Nullpunkt als mittleres Grau dargestellt
Camera Obscura mit Sobel-Operator \mathbf{G_y} gefiltert (detektiert horizontale Kanten). Da auch negative Werte entstehen, wird der Nullpunkt als mittleres Grau dargestellt
Camera Obscura mit Sobel-Operatoren \mathbf{G}_x und \mathbf{G}_y gefiltert, kombiniert und mit Absolutwerten dargestellt.

Scharr-Operator[Bearbeiten]

Der Sobel-Operator hat keine perfekte Rotationssymmetrie. Besser berücksichtigt wird dies mit dem Scharr-Operator [1]:


\mathbf{G}_x= \begin{bmatrix}
3 & 0 & -3 \\
10 & 0 & -10 \\
3 & 0 & -3 
\end{bmatrix} * A

und

\mathbf{G}_y= \begin{bmatrix} 
3 & 10 & 3 \\
0 & 0 & 0 \\
-3 & -10 & -3
\end{bmatrix} * A

Siehe auch[Bearbeiten]

Referenzen[Bearbeiten]

  1. Scharr, Hanno. Optimale Operatoren in der Digitalen Bildverarbeitung. Dissertation: Ruprecht-Karls-Universität Heidelberg, 2000 .