10.8 Detección de bordes

Los bordes de una imagen constituyen detalles de grano fino que se corresponden con cambios más o menos súbitos, abruptos, en la variación de luminancia. Como senalábamos anteriormente, el suavizado de la imagen producido, por ejemplo, mediante un filtro paso-bajo o un filtro de media, provocaba un difuminado de los bordes, suavizando el perfil de luminancia de modo que se obtenían rampas con una pendiente menos brusca (en lugar de un escalón perpendicular, rampas de suave pendiente). En efecto, el filtro de media equivale, desde el punto de vista formal (matemático) a la integral de las luminancias de los pixels que constituyen el contorno. Como es lógico, si aplicamos a la imagen la operación inversa de la integración, es decir, la diferenciación o derivada, de la matriz de luminancias, produciremos el efecto contrario, a saber, acentuar o realzar lo bordes, de modo que la transición de luminancias observable en el perfil sea súbita. Recordemos que la primera derivada expresa la tasa de cambio de una función (variación de la luminancia).
Los metodos de diferenciación más utilizados en el procesamiento de imágenes son:
- El gradiente de luminancia (la derivada primera de la función de luminancia).
- El operador laplaciano.
- La detección de pasos de cero de la segunda derivada de la imagen.
- El operador de Marr & Hildreth (1980).

El método más fácil para diferenciar (o derivar) una imagen consiste en aplicarle un operador gradiente (calcular la derivada primera de la función de luminancia de la imagen). Sea la función bidimensional f(x,y), el punto (x,y) y un entorno 3x3 centrado en dicho punto de la función (imagen).

   x-1,y-1

x-1,y

x-1,y+1

x,y-1

x,y

x,y+1

x+1,y-1

x+1,y

x+1,y+1

El gradiente de f(x,y), formalmente G[f(x,y)] ó g(x,y), en el punto (x,y) se define como un vector en la dirección de la máxima variación de la función, cuya magnitud es igual a la máxima variación por unidad de espacio (pixel).

Según Roberts, las derivadas podemos estimarlas así:

  

Donde ?, es el intervalo de digitalización o espaciado entre los centros de los pixels. La dirección del gradiente viene dada por  el signo de la diferencia. La magnitud del gradiente indica la fuerza de la variación en luminanciaviene dada por el valor absoluto de la diferencia. Dado que el gradiente es proporcional a la diferencia de luminancias entre pixels adyacentes, resulta lógico que el gradiente tome valores altos en aquellas áreas de la imagen en las que haya bordes finos o cambios abruptos de luminancia, mientras que tomará valores valores pequenos solamente en las áreas en las que la luminancia no varie, sea uniforme.

Es posible calcular el gradiente mediante la operación de convolución de la imagen con una máscara o submatriz de dimensión 3x3, 5x5 o 7x7. Así, las coorespondientes al gradiente simple, separando las dos componentes direccionales serían:

0

-1

0

0

  1

0

0

0

0

0

0

0

-1

1

0

0

0

0

La primera máscara corresponde a los bordes horizontales: Gx[f(x,y)]= (Lx,y - Lx-1,y).
Y la máscara  segunda a los verticalesGy[f(x,y)]= (Lx,y - Lx,y-1).
Obviamente, si una máscara que contiene un operador horizontal se aplica a un borde vertical, este último no se detectará. logamente, si una máscara que contiene un operador vertical se aplica a un borde horizontal, este último no se detectará. De modo similar, tanto si aplicamos un operador horizontal como si aplicamos otro vertical sobre un objeto cuyo contorno se adecúe a una línea con una inclinación de ?450, tampoco será detectada. En general, si las líneas a detectar forman un ángulo de pequena amplitud con la horizontal, domina la componente horizontal, por lo que podrá detectarse mediante un operador horizontal, desapareciendo la componente vertical del objeto. Y viceversa ocurrirá si loa línea forma un ángulo grande con la horizontal, es decir, que forma un pequeno ángulo con la vertical.
Finalmente, se han propuesto también numerosos filtros del gradiente sintonizados a otras direcciones diferentes de la horizontal y vertical, como los que se muestran a continuación:

Donde Gn significa detector de bordes en dirección Norte, Gne detector de bordes orientados en dirección Noreste y Ge en dirección Este.


FIGURA 18.- Imagen original (superior izquierda). Pixels detectados por el operador horizontal (superior derecha). ). Pixels detectados por el operador vertical (inferior izquierda). Suma de las imágenes de bordes resultantes de aplicar los dos operadores. (inferior derecha).

En la Figura  18 podemos observar el resultado de aplicar un operador gradiente a una sencilla imagen geométrica (superior izquierda). En la parte superior derecha se representa el resultado producido por el operador horizontal (rastreo de filas), en la parte inferior izquierda el resultado que se obtiene mediante el operador vertical (rastreo de columnas) y en la parte inferior derecha la suma de los resultados de ambos operadores.

El operador laplaciano o lapalaciana de una función bidimensional f(x,y) cuantifica el cambio del cambio de una función. Es decir, el cambio de una derivada, por lo que es una segunda derivada que definimos formalmente como::

Puede obtenerse una aproximación discreta, útil para el procesamiento de imágenes digitalizadas, mediante la siguiente fórmula, aplicada a cada pixel:

Lo cual suele implementarser computacionalmente mediante la convolución con la siguiente máscara:

0

-1

0

-1

4

-1

0

-1

0

Al ser la laplaciana una derivada de segundo orden, resulta muy sensible al ruido. Por ello, suele aplicarse de modo combinado con otros operadores de gradiente que además incorpore un filtro paso-bajo a fin de suavizar la imagen (reducir el ruido).

Cuando la imagen contiene gradientes débiles, aunque bien localizados espacialmente, pueden detectarse contornos bastante difusos mediante un algoritmo fundamentado en la localización de los cruces de cero de la segunda derivada de la matriz de luminacias.
En el algoritmo basado en el gradiente, en cuanto detector de bordes, el objetivo consistía en buscar los máximos y mínimos locales de la primera derivada de la función de luminancia. Este algoritmo se basa en obtener los "pasos de cero" o puntos en que la segunda derivada intercepta (cruza) el eje de ceros (abscisas). Para ello, cada pixel se a una máscara de KxK pixels con una función continua fácilmente derivable [por ejemplo, un polinomio de grado n con dos variables Pn(v,w)]. Cuando calculamos la primera derivada parcial, obtenemos su gradiente (dirección y módulo). Dicho gradiente adoptará la forma de pico siempre que la segunda derivada pase por el eje de ceros (abscisas). Por tanto, la presencia de un paso de cero senala la existencia de un borde.
El efecto producido al aplicar este algoritmo será el de disponer de una imagen de bordes con una anchura de un pixel. Es decir, que este detector sólo responde a los puntos concretos que forman el contorno y no responde a los pixels vecinos del contorno. Si bien el coste computacional es mayor que en los otros algoritmos, la eficacia lograda en la detección los supera con creces.

El  algoritmo conocido como operador de Marr-Hildreth, de modo similar al anterior,  trata de localizar los pasos de cero de la segunda  derivada. Sin embargo, en este caso no es necesario buscar una función continua que se ajuste a la imagen. Este algoritmo, propuesto por Marr y Hildreth (1980) para la construcción del esbozo primario en bruto, comienza transformando la matriz de luminancias de una imagen en varias  representaciones independientes, suavizadas a diferentes escalas. Para ello, se  aplica un filtro gaussiano centrado en cada pixel de la imagen original. El grado de suavización dependerá de la amplitud de la gaussiana, medida a través de su desviación estandar. Tras este suavizado de la imagen, se aplica el operador Laplaciano a cada una de las representaciones generadas, las cuales difieren en la escala o rango de frecuencias que contienen.


FIGURA 19.- Imagen original y los bordes físicos presentes en cada una de tres escalas determinadas por la diferente  desviación típica de los filtros gaussianos

 La Figura  19 muestra los bordes detectados en una imagen al aplicar tres filtros gaussianos de diferentes amplitudes. Estas representaciones hacen explícita la localización y la escala de los cambios de intensidad presentes en la imagen original.