Operador Sobel

Operador Sobel

El operador Sobel es utilizado en procesamiento de imágenes, especialmente en algoritmos de detección de bordes. Técnicamente es un operador diferencial discreto que calcula una aproximación al gradiente de la función de intensidad de una imagen. Para cada punto de la imagen a procesar, el resultado del operador Sobel es tanto el vector gradiente correspondiente como la norma de éste vector.

Contenido

Descripción simple

El Operador Sobel aplicado sobre una imagen digital en escala de grises, calcula el gradiente de la intensidad de brillo de cada punto (píxel) dándo la dirección del mayor incremento posible (de negro a blanco) además calcula el monto de cambio en esa dirección, es decir, devuelve un vector. El resultado muestra qué tan abruptamente o suavemente cambia una imagen en cada punto analizado, y a su vez que tanto un punto determinado representa un borde en la imagen y también la orientación a la que tiende ese borde. En la práctica, el cálculo de la magnitud -que da nociones de un borde- es más sencilla que la interpretación de la dirección.

Matemáticamente, el gradiente de una función de dos variables (para este caso la función de intensidad de la imagen) para cada punto es un vector bidimensional cuyos componentes están dados por las primeras derivadas de las direcciones verticales y horizontales. Para cada punto de la imagen, el gradiente del vector apunta en dirección del incremento máximo posible de intensidad, y la magnitud del gradiente del vector corresponde a la cantidad de cambio de intensidad en esa dirección. Lo anterior implica que el resultado de aplicar el operador sobel sobre la región de una imagen con intensidad de brillo constante es un vector cero, y el resultado de aplicarlo en un punto sobre un borde es un vector que apunta cruzando el borde (perpendicular) en sentido de los puntos más oscuros hacia los más claros.

Formulación

Matemáticamente, el operador utiliza dos kernels de 3×3 elementos para aplicar convolución a la imagen original para calcular aproximaciones a las derivadas, un kernel para los cambios horizontales y otro para las verticales. Si definimos \mathbf{A} como la imagen original y \mathbf{G_x} y \mathbf{G_y} son los dos kernels que representan para cada punto las aproximaciones horizontal y vertical de las derivadas de intensidad, el resultado es calculado como:


\mathbf{G_x} = \begin{bmatrix} 
+1 & 0 & -1 \\
+2 & 0 & -2 \\
+1 & 0 & -1 
\end{bmatrix} * \mathbf{A}
\quad \mbox{and} \quad 
\mathbf{G_y} = \begin{bmatrix} 
+1 & +2 & +1 \\
0 & 0 & 0 \\
-1 & -2 & -1 
\end{bmatrix} * \mathbf{A}

En cada punto de la imagen, los resultados de las aproximaciones de los gradientes horizontal y vertical pueden ser combinados para obtener la magnitud del gradiente, mediante:

\mathbf{G} = \sqrt{ \mathbf{G_x}^2 + \mathbf{G_y}^2 }

Con esta información, podemos calcular también la dirección del gradiente:

\mathbf{\Theta} = \operatorname{arctan}\left({ \mathbf{G_y} \over \mathbf{G_x} }\right)

donde, por ejemplo, Θ es 0 para bordes verticales con puntos más oscuros al lado izquierdo.



Formalmente

Debido a que la función de intensidad de una imagen digital sólo se conoce mediante puntos discretos, las derivadas de estas funciones no pueden ser definidas a menos que asumamos que existe una función continua que ha sido muestreada en los puntos de la imagen. Con algunas suposiciones adicionales, la derivada de la función continua de intensidad puede ser calculada como una función de la función de intensidad muestreada, i.e, de la imagen digital. De lo anterior resulta que las derivadas en cualquier punto particular son funciones de los valores de intensidad, virtualmente, en todos los puntos de la imagen. Sin embargo, aproximaciones a estas funciones diferenciales pueden ser definidas con el nivel de precisión requerido teniendo en cuenta únicamente una pequeña región de puntos alrededor del estudiado.

El operador sobel representa una primera aproximación imprecisa del gradiente de la imagen, pero es de calidad suficiente para ser de uso práctico en muchas aplicaciones. Más precisamente, éste operador utiliza sólo valores de intensidad en una región de 3x3 alrededor de cada punto analizado para calcular el gradiente correspondiente, además de que utiliza sólo números enteros para los coeficientes que indican la aproximación del gradiente.

Detalles técnicos

Como una consecencia de su definición, el operador sobel puede ser implementado mediante simples definiciones tanto en hardware como en software: sólo son utilizados ocho puntos de la imagen alrededor del punto a analizar para calcular el punto correspondiente de la imagen resultante, además sólo se requiere aritmética con números enteros para calcular una aproximación del vector gradiente. Además, los dos filtros discretos descritos arriba pueden ser separados:

\begin{bmatrix} 
+1 & 0 & -1 \\
+2 & 0 & -2 \\
+1 & 0 & -1 
\end{bmatrix} = \begin{bmatrix} 
1 \\
2 \\
1
\end{bmatrix} \times \begin{bmatrix} 
+1 & 0 & -1  
\end{bmatrix} \quad \quad
\begin{bmatrix} 
+1 & +2 & +1 \\
0 & 0 & 0 \\
-1 & -2 & -1 
\end{bmatrix} = \begin{bmatrix} 
+1 \\
0 \\
-1
\end{bmatrix}  \times \begin{bmatrix} 
1 & 2 & 1  
\end{bmatrix}

y las dos derivadas \mathbf{G_x} y \mathbf{G_y} pueden ser calculadas con:


\mathbf{G_x} = \begin{bmatrix} 
1 \\
2 \\
1
\end{bmatrix} \times \begin{bmatrix} 
+1 & 0 & -1  
\end{bmatrix} * \mathbf{A}
\quad \mbox{y} \quad 
\mathbf{G_y} = \begin{bmatrix} 
+1 \\
0 \\
-1
\end{bmatrix} \times \begin{bmatrix} 
1 & 2 & 1  
\end{bmatrix} * \mathbf{A}

En ciertas implementaciones, estos cálculos separados dan buena ventaja ya que implican menor operaciones aritméticas para cada punto.

Ejemplo

Ya que el resultado del operador sobel es un mapeo de dos dimensiones del gradiente de cada punto, éste puede ser procesado y ser visto como una imagen, con las áreas de gradiente elevado (equivalentes a bordes) en negro y con los demás como blanco (el fondo de la imagen generada). Las siguientes imágenes ilustran lo anterior, se muestra el cálculo del operador sobel sobre una imagen. Observese las diferencias de gradiente (zonas negras) dadas al aplicar únicamente un gradiente.

Imagen original en escala de grises.
Imagen resultante del gradiente calculado por el operador Sobel sobre la imagen original.
Cálculo del gradiente X con el operador Sobel.
Cálculo del gradiente Y con el operador Sobel.

Véase también


Enlaces externos


Wikimedia foundation. 2010.

Игры ⚽ Поможем сделать НИР

Mira otros diccionarios:

  • Sobel — puede referirse a: Dava Sobel Herbert M. Sobel Operador Sobel Esta página de desambiguación cataloga artículos relacionados con el mismo título. Si llegaste aquí a través de …   Wikipedia Español

  • Transformada de Hough — La Transformada de Hough es un algoritmo empleado en reconocimiento de patrones en imágenes que permite encontrar ciertas formas dentro de una imagen, como líneas, círculos, etc. La versión más simple consiste en encontrar líneas. Su modo de… …   Wikipedia Español

  • Algoritmo de Canny — Este artículo está huérfano, pues pocos o ningún artículo enlazan aquí. Por favor, introduce enlaces hacia esta página desde otros artículos relacionados …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”