Операторы вычисления векторов градиентов
Операторы Робертса и Собела непосредственно вычисляют значения компонент вектора-градиента для каждой точки изображения путем $\it{свертки}$ (см. в разделе "линейная фильтрация") локальной окрестности точки с малоразмерными масками
$$ \begin{gather}\tag{1} M_1 = \begin{vmatrix} 1& 0\cr 0&-1 \end{vmatrix}, \quad M_2 = \begin{vmatrix} 0&-1\cr 1& 0 \end{vmatrix} \end{gather} $$
для оператора Робертса, и
$$ \begin{gather}\tag{2} M_x = \begin{vmatrix} 1&0&-1\cr 2&0&-2\cr 1&0&-1 \end{vmatrix}, \quad M_y = \begin{vmatrix} 1&2& 1\cr 0&0& 0\cr -1&2&-1 \end{vmatrix} \end{gather} $$
для оператора Собела.
Практические исследования показывают, что оператор Робертса (рис. 2, 3) не является в достаточной мере помехозащищенным, оператор же Собела
(рис. 4 - 7) обеспечивает вполне удовлетворительные результаты при
обработке реальных изображений.
Непосредственным результатом применения оператора Собела является вектор-градиент $\langle g_{x}$, $g_{y} \rangle$, не являющийся инвариантным к повороту изображения. Однако он может быть приведен к виду $\langle A,\phi \rangle$, где
$$ \begin{gather}\tag{3} A = \sqrt { g_{x}^2 + g_{y}^2}; \quad \phi = {\rm arctg} \left( { \frac {g_{y}}{g_{x}} }\right). \end{gather} $$
Величина $A$ не зависит от угла разворота, а величина $\phi $ для любых одноименных точек двух изображений, развернутых друг относительно друга на угол $d\phi $, будет отличаться только на константу $d\phi $. Так же, как в методе "сенсорных пар", величина $A$ характеризует интенсивность перепада яркости в точке; величина $\phi $ - направление нормали к контуру в точке. Доказано, что точность углового разрешения для приведенных масок размера $3\times 3$ составляет примерно $4$ °. Известны маски размера $5\times 5$, при помощи которых достигается еще большее угловое разрешение. Учитывая, что вычисление $\phi $ на практике реализуется табличным способом, можно сделать вывод, что оператор Собела эффективнее в вычислительном плане и обеспечивает б ольшую точность, чем метод "сенсорных пар", являясь при этом действительно инвариантным к поворотам изображения.
![]() |
![]() |
Оператор Робертса: результат свертки с маской $M_1$ | Оператор Робертса: результат свертки с маской $M_{2}$ |
![]() |
![]() |
Оператор Собела: вертикальные контуры (маска $M_x$) | Оператор Собела: горизонтальные контуры (маска $M_y$) |
![]() |
![]() |
Оператор Собела: амплитуда градиента | Оператор Собела: поле направлений градиента |