Las operaciones morfológicas aplican un elemento estructural a la imagen de entrada, sin cambiar el tamaño de la imagen de salida. Las operaciones morfológicas más comunes son la dilatación y la erosión. En una operación morfológica, el valor de cada píxel en la imagen de salida depende del valor de ese píxel en la imagen de entrada y su relación con la vecindad. Seleccionando el tamaño y forma de la vecindad (definido a través de un elemento estructural) se puede crear una operación morfológica, que altera el valor del píxel en la imagen de salida.
Dilatación y erosiónLa dilatación se basa en aumentar el nivel de los valores de los píxeles en el entorno de los objetos presentes en la imagen. La erosión se basa en reducir el nivel de los píxeles del entorno de un objeto. El número de píxeles a los que se aumenta o reduce el nivel depende del tamaño y forma del elemento estructural usado para procesar la imagen. La dilatación y la erosión expande y contrae la imagen.Para calcular la dilatación se superpone el píxel central del elemento estructural a cada píxel de la imagen de entrada, entonces el píxel de la imagen de entrada se altera en función de los valores de los píxeles del entorno, definidos por el elemento estructural. El valor del píxel de salida será el máximo entre todos los píxeles presentes en la vecindad.
Un ejemplo de aplicación de un elemento estructural se muestra a continuación
Centro = (tamaño+1)/2;
Por ejemplo, para el elemento estructural cuadrado de tamaño 3x3 el centro será:Centro = (3+1 x 3+1)/2 = 2 x 2
tal y como se muestra en la siguiente figura.
Si la matriz no es cuadrada, se redondea entonces hacia el entero más próximo hacia menos infinito.
A pesar de que el cuadrado de [3, 3] es el elemento estructural más generalmente usado, se pueden utilizar otros elementos estructurales, como los que se muestran a continuación.
ALos pasos para aplicar la dilatación son:
1.- Seleccionar el píxel de la imagen original a tratar.
2.- Buscar el mayor de los píxeles de la vecindad, incluído el central, definidos por la forma y tamaño del elemento estructural.
3.- Sustituir el valor del píxel por el máximo valor.
Los anteriores pasos se ejecutan para todos los píxeles de la imagen.
La erosión reduce el nivel de los píxeles del entorno de un objeto, para ello selecciona el mínimo valor de la vecindad del punto a tratar (en vez del máximo, como cuando se aplica la dilatación). Por ejemplo
1
1
1
1
1
1
1
1
0
Imagen de entrada
1
1
1
1
1
1
1
1
1
Elemento estructural
1
1
1
1
0
1
1
1
0
Imagen de salida
Como se puede apreciar, se ha sustituído el píxel central por el mínimo valor de los píxeles de la imagen original definidos por la vecindad contenida en el elemento estructural. El programa que se muestra a continuación realiza la erosión de un grupo de píxeles
% Imagen de entradaI=[0 0 0 0 0 0 0; 0 0 0 0 0 0 0; 0 0 15 27 8 0 0; 0 0 100 95 1 0 0; 0 0 125 30 2 0 0; 0 0 0 0 0 0 0; 0 0 0 0 0 0 0];% Elemento estructuralEle=strel('square',3);% Se aplica la erosiónI2=imerode(I, Ele);% Matriz resultante>> I2I2 =0 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 00 0 0 1 0 0 00 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 0
Nótese que todos los elementos de la matriz I tienen en una vecindad definida por el elemento estructurante cuadrado de tamaño 3x3 al menos un cero, excepto el elemento central (95), que ha sido sustituido por 1 (el menor valor del entorno).
Apertura y cerraduraLas operaciones de dilatación y erosión se combinan para formar diferentes métodos de procesar la imagen. Por ejemplo, uno de ellos es la apertura de una imagen, que es la realización de una erosión seguida de una dilatación utilizando el mismo elemento estructural en ambas operaciones. Este método se aplica cuando se desea eliminar los pequeños objetos y mantener el tamaño en los grandes (eliminar ruído). A continuación se muestra como realizar la apertura
% Se define el elemento estructuralee=strel('diamond', 2);
% Se aplica la erosiónI1=imerode(I,ee);
% Seguida de la dilataciónI2=imdilate(I1,ee);Lo anterior es equivalente a:ee=strel('diamond', 2);I2=imopen(I,ee);
La operación de cerradura de una imagen se realiza cuando se aplica la dilatación y posteriormente la erosión (contrario a la apertura). Este proceso se caracteriza por rellenar huecos y conectar objetos que están próximos entre sí. A continuación se muestra como realizar la cerradura
% Se define el elemento estructuralee=strel('diamond', 3);
% Se aplica la dilataciónI1=imdilate(I,ee);
% Seguida de la erosiónI2=imerode(I1,ee);Lo anterior es equivalente a:ee=strel('diamond', 3);I2=imclose(I,ee);
Transformada de ganancia o pérdida (Hit or Miss)Es una herramienta que permite detectar determinadas formas en un grupo de píxeles de la imagen. Se define como la operación AND de una imagen (A), erosionada con un elemento estructural (B1) y el complemento de la imagen, erosionada con otro elemento estructural (B2), ello es:
La anterior expresión se puede interpretar como que esta transformación la constituyen el conjunto de puntos en los que coincide B1 en A y B2 en el complemento de A simultáneamente. Por ejemplo, para detectar el punto superior izquierdo de una imagen se pueden definir los siguientes elementos estructurales>> b1=strel([0 0 0; 0 1 1; 0 1 0])b1 =0 0 00 1 10 1 0>> b2=strel([1 1 1; 1 0 0; 1 0 0])b2 =1 1 11 0 01 0 0Si la imagen a la que se pretende detectar la esquina superior izquierda se define por.
Si se interceptan ambas se obtiene el resultado final>> c3=c1&c2
Basado en lo anterior se podría, por ejemplo, detectar los píxeles de todas las esquinas, rotando 90 grados los elementos estructurales tres veces y aplicando el OR entre las cuatro imágenes resultantes. Los elementos estructurales para detectar las cuatro esquinas se resumen en la siguiente tabla.
Este método puede aplicarse en la detección de otras formas, redefiniendo los elementos estructurales.
Vecindades de un píxel
Define la relación entre determinado píxel y su entorno. Existen tres tipos fundamentales de vecindad.