El gradiente y la detección de discontinuidades El gradiente
El gradiente de una imagen se basa en determinar las variaciones de píxeles en dos dimensiones  (1) siendo la magnitud del vector  (2) El cual se aproxima generalmente, dado la facilidaad de cálculo, en el procesamiento de imágenes por:  (3) La anterior expresión preserva las variaciones en los niveles de gris, que es lo que el gradiente representa.
El diferencial discreto en cada eje puede representarse por:  (4)  (5) Lo que sería equivalente a aplicar las siguientes máscaras en el filtrado espacial de la imagen | w(s,t) | w(s,t+1) | | w(s+1,t) | w(s+1,t+1) |
| | |
La aplicación de las anteriores máscaras en el filtrado de imágenes captura las variaciones de los niveles de gris en la horizontal (dirección y) y la vertical (dirección x). Una extensión natural del anterior razonamiento es tratar de capturar las variaciones en la diagonal, ello es (6)
(7)
| w(s,t) | w(s,t+1) | | w(s+1,t) | w(s+1,t+1) |
| | |
A las máscaras previamente definidas se les denomina máscaras de Roberts. Como las dimensiones de las máscaras son normalmente impares (para mantener el píxel a alterar como el centro de la vecindad), las anteriores máscaras deben extenderse a dimensión [3, 3]. A las máscaras que se muestran a continuación se les denomina máscaras de Prewitt.
| Horizontal | Vertical | -45o | +45o |
Nótese en las máscaras previamente definidas que la suma de los píxeles que la conforman es cero, lo cual provoca que cuando se aplique el filtro sobre zonas de la imagen con píxeles de igual valor, resulta en cero (background). Si se quiere reforzar el valor del píxel central (reduce la influencia del ruido en la detección de discontinuidades) entonces se le da el valor 2 a los píxeles centrales que representan las variaciones en la vertical, horizontal y la diagonal. A las máscaras resultantes de aplicar tal variación se les denomina máscaras de Sobel. | Horizontal | Vertical | -45o | +45o |
Como se mostrará más adelante, una de las aplicaciones fundamentales del gradiente es la detección de bordes, existen otras máscaras aplicables a tal función, como son las máscaras de Kirsch; formadas por 8 máscaras que representan 8 orientaciones, como se muestra a continuación | 0o | 45o | 90o | 135o | | 180o | 225o | 270o | 315o |
Utilizando el mismo principio de las máscaras de Kirsch se definen las máscaras de la brújula de Robinson como se muestra a continuación Nótese que las máscaras de Robinson son simétricas con respecto a una línea central de ceros en la horizontal, vertical y diagonales. Se pueden calcular cuatro filtros y los restantes son el resultado de negar los anteriores, por lo que son menos costosos computacionalmente que las máscaras de Kirsch. En el proceso de obtención de bordes por lo general se aplican todas las máscaras y se sustituye el valor del píxel central por el de la máscara que devuelve el mayor valor (orientación más significativa), a lo cual puede aplicarse un umbral, sobre la imagen resultante.
Detección de discontinuidades Existen tres tipos fundamentales de discontinuidades: puntos, líneas y bordes. La forma más general de detectar las discontinuidades es aplicando filtros que refuercen y/o atenúen los píxeles representativos de las discontinuidades que se pretenden detectar.
Detección de puntos Un punto en una imagen es un píxel cuyo valor es superior o inferior al nivel de gris de los píxeles de la vecindad. Considerando lo anterior, si se aplica una máscara que refuerce al píxel central y atenúe la influencia de los píxeles de la vecindad, entonces el valor devuelto por el filtro será mayor mientras mayor sea la diferencia del píxel central con respecto a los píxeles del entorno.
Como la aplicación de un filtro responde a:
(8) Detectar puntos en la imagen es seleccionar los valores devueltos por el filtro que cumplan la condición (9) donde U es un valor positivo que constituye el umbral de detección de los puntos. Mientras mayor sea el valor de U se detectarán menos píxeles de la imagen y viceversa. Cuando se define una máscara para detectar puntos es deseable que la suma de los pesos de la máscara sea cero, para no detectar puntos cuando el píxel central y los píxeles de la vecindad tengan el mismo nivel de gris.
Las máscaras que definen a los filtros laplacianos cumplen las anteriores exigencias
Nótese que la detección de los puntos dependerá del número de píxeles del entorno, el nivel en que se acentúa el píxel central con respecto a los píxeles del entorno y el umbral utilizado para detectar los puntos. Detección de líneas La detección de puntos está basada en la extensión de la filosofía utilizada en la detección de puntos. En aquél caso se refuerza el punto (píxel central) con respecto al entorno (píxeles del entorno), en este caso se refuerza la línea cuya orientación se pretende detectar, debilitando el aporte al filtro de los píxeles del entorno. A continuación se muestran algunos tipos de máscaras típicas utilizadas en la detección de líneas. | Horizontal | Vertical | -45o | +45o |
Para detectar las líneas que prevalecen en determinada dirección se utiliza la ecuación (9). Nótese que la suma de los pesos de las máscaras anteriores es cero cuando el píxel central y los del entorno tienen el mismo nivel de gris. Existen dos aplicaciones básicas de la detección de líneas:
[1].-Determinar la orientación preferente de las líneas en determinada imagen Para abordar esta aplicación se definen un conjunto de máscaras que representen las posibles orientaciones de las líneas, se aplica el filtro (8) para cada una de las máscaras. El mayor valor devuelto representará la orientación preferente de la línea. Lo anterior puede representarse por:
(10) Por ejemplo, si la respuesta de un filtro a diferentes tipos de máscara es: g1(x,y) = 7 (Filtro horizontal) g2(x,y) = 15 (Filtro vertical) g3(x,y) = 39 (Filtro a +45o) g4(x,y) = 30 (Filtro a -45o) Entonces en el píxel donde se analiza el filtro es parte de una línea predominante a +45o (mayor valor devuelto). Si se extiende este análisis a todos los píxeles de la imagen, la preponderancia será la de la máscara que devuelva la mayor cantidad de valores máximos al aplicar los filtros correspondientes. [2].-Detectar las líneas con determinada orientación En este caso se define la orientación de la línea que se desea detectar y se crea la máscara correspondiente. Nótese que para aumentar las posibles orientaciones se requiere de un número mayor de píxeles en la máscara. La siguiente es un ejemplo de máscara donde se desea detectar una orientación de línea superior a 45 grados.
| -1 | -1 | -1 | 2 | -1 | | -1 | -1 | -1 | 2 | -1 | | -1 | -1 | 2 | -1 | -1 | | -1 | 2 | -1 | -1 | -1 | | -1 | 2 | -1 | -1 | -1 |
|
Las variables involucradas en la detección de líneas son: número de píxeles de la vecindad, el nivel en que se acentúan los píxeles cuya orientación representa a las líneas que se pretenden detectar con respecto a los píxeles del entorno, el umbral utilizado para detectar las líneas y la orientación de las líneas a detectar. Otros métodos de detección se líneas se basan en transformaciones de la imagen original, por ejemplo la transformada de Hough y la transformada de Radon. Detección de bordes De los tres métodos de detección de discontinuidades que se tratan aquí, es el más utilizado para caracterizar a una imagen. El borde en una imagen la forman un conjunto de píxeles que tienen una variación acotada en sus niveles de gris. La detección de bordes, como su nombre indica, se basa en detectar de forma apropiada tales variaciones. Los bordes están estrechamente relacionados con el concepto de contorno, pero este último es más general (puede considerarse a un contorno como una propiedad donde los bordes es uno de los subconjuntos que la conforman).
A continuación se muestra un borde formado por un conjunto de líneas horizontales, cada una de ellas con una variación acotada [0, 1] equivalente a la transición del negro al blanco.

Si a la matriz equivalente de la figura anterior se le aplica la primera y la segunda derivada a través de un modelo en Simulink como el que se representa a continuación 
Se puede apreciar el comportamiento de la primera deriva 
y de la segunda derivada 
Si se le aplica un ruído aleatorio para distorsionar el borde 

Entonces la primera y segunda derivada tendrían el siguiente comportamiento 

Nótese como la segunda derivada es mucho más sensible al ruido. Si se analizan las gráficas anteriores, la interpretación de un borde en una imagen cuando se aplica la primera derivada es el equivalente a detectar los valores que sobrepasen determinado umbral, como se muestra en la siguiente figura

Si se analiza la segunda derivada, ello sería equivalente a la detección de los cruces por cero 
Este segundo método es poco práctico en imágenes ruidosas, por su alta sensibilidad. Es por ello que se aplica la detección de bordes basada en la primera derivada de forma más frecuente. La primera derivada se aplica utilizando el gradiente, la segunda derivada a través del laplaciano. En ambos casos se considera que un punto es un borde si como resultado de aplicar (8), el valor devuelto es mayor que determinado umbral (9).
Presentación |
Referencia: Gonzalez, R.; Woods, R.: Digital Image Processing. Prentice Hall. Tercera edición. 2009. Mathworks: Image Processing Toolbox. 2009. |