Sobel

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

Operator Sobela jest jednym z operatorów (Krzyż Robertsa, Prewitt, Scharr) używanych do wykrywania krawędzi w cyfrowym przetwarzaniu obrazów. Jest to w istocie operator dyskretnego różniczkowania, umożliwiający aproksymację pochodnych kierunkowych intensywności obrazu w ośmiu kierunkach co 45°. Operator ten został po raz pierwszy przedstawiony w referacie wygłoszonym w roku 1968 przez Irwina Sobela (współautor Jerome Arthur Feldman), którego tekst nie został opublikowany lecz mimo to jest powszechnie cytowany.

Algorytm[edytuj | edytuj kod]

Wyznaczenie pochodnej kierunkowej odbywa się za pomocą operacji dwuwymiarowego dyskretnego splotu macierzy obrazu z macierzą 3x3 charakterystyczną dla danego kierunku zwaną jądrem (kernel) przekształcenia. Macierze te są antysymetryczne w stosunku do kierunku wykrywanej krawędzi. Zbiór 8 macierzy pozwala na określenie kierunku od 0° do 315° z krokiem 45°. Dla kierunku 0° wykrywane są krawędzie pionowe, a dla 90° – krawędzie poziome. Operacja splotu wyznacza w pierwszym przypadku estymatę pochodnej cząstkowej względem osi X, a drugim względem osi Y.

Otrzymane wartości pochodnych cząstkowych definiują wektor gradientu dla każdego punktu obrazu. Innym prostszym sposobem podejścia do aproksymacji gradientu jest tzw. "metoda kompasowa". W metodzie tej maska dająca maksymalną wartość pochodnej określa moduł i kierunek grandientu z rozdzielczością 45°.

Przykłady masek dla kątów 0°, 45°, 90° i 135°.


\mathbf{S_1} = \begin{bmatrix}
-1 &\ \  0 & +1 \\
-2 &\ \  0 & +2 \\
-1 &\ \  0 & +1
\end{bmatrix}
\quad \quad 
\mathbf{S_2} = \begin{bmatrix}
\ \ 0 & +1 & +2 \\
-1 &\ \  0 & +1 \\
-2 & -1 &\ \ 0
\end{bmatrix}
\quad \quad  
\mathbf{S_3} = \begin{bmatrix}
+1 & +2 & +1 \\
\ \ 0 &\ \  0 &\ \ 0 \\
-1 & -2 & -1
\end{bmatrix}
\quad \quad 
\mathbf{S_4} = \begin{bmatrix}
 +2 & +1 &\ \  0 \\
+1 &\ \  0 & -1 \\
\ \ 0 & -1 & -2
\end{bmatrix}

Kolejne maski otrzymuje się obracając podane maski o 180°. Warto zauważyć, że wystarczy obliczyć sploty z czterema pierwszymi maskami, gdyż pozostałe różnią się tylko znakiem (Sj+4= – Sj).

Operator Sobela dokonuje operacji uśredniania pochodnej (z wagami 1, 2, 1) z trzech linii równoległych do kierunku różniczkowania. Dzięki temu ma mniejszą wrażliwość na zakłócenia w obrazie (szum) niż Krzyż Robertsa i lepiej wygładza niż operator Prewitta.

Linki zewnętrzne[edytuj | edytuj kod]