Оператор Собеля

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Оператор Собеля використовується в обробці зображень для виділення границь. Це дискретний диференціальний оператор, що обчислює наближене значення градієнта чи норми градієнта для яскравості зображення. Оператор Собеля базується на згортці зображення невеликими сепарабельними цілочисельними фільтрами в вертикальному та горизонтальному напрямках. Хоча, апроксимація градієнта досить груба, особливо на високочастотних ділянках зображення.

Визначення[ред.ред. код]

Оператор використовує ядра 3×3, з якими звертає зображення для обчислення наближених значень часткових похідних по горизонталі та по вертикалі. Якщо A вихідне зображення, а Gx та Gy — два зображення, де кожна точка містить часткові похідні по x та по y відповідно. Вони обчислюються наступним чином:


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

\quad
\mbox{and}
\quad   

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

де * позначає двовимірну операцію згортки.

Координата x зростає «направо», а y — «вниз». Для кожної точки зображення наближене значення градієнта обчислюється через наближенні значення часткових похідних:

\mathbf{G} = \sqrt{ {\mathbf{G}_x}^2 + {\mathbf{G}_y}^2 }

а також напрямок градієнта:

\mathbf{\Theta} = \operatorname{arctan}\left({ \mathbf{G}_y \over \mathbf{G}_x }\right)

де, наприклад, кут Θ рівний нулю для вертикальної границі, в якої темна сторона зліва.

Значення функції існує тільки на регулярній сітці, тому, строго кажучи, не можна знаходити похідні, але припустивши неперервність функції можна застосувати скінченні різниці, а саме оператор Собеля для апроксимації часткових похідних.