Está en la página 1de 5

Morfología matemática: Dilatación

Álvarez Rodríguez Faustino Adrián IS15110137 ISHC55B 03-Dic-2018


Ingeniería en Mecatrónica ITESI
Procesamiento Digital de Imágenes Profesor Gerardo Trejo Caballero

RESUMEN: A través de esta práctica, se conoce el concepto Es decir, el valor del pixel central se reemplaza por el máximo
de dilatación, su definición en teoría de conjuntos, el objetivo de los niveles digitales cubierto por el elemento estructural
de realizar este proceso y su efecto visual tras ser aplicado. usado para la dilatación [3].
Además, se elabora una función de MATLAB capaz de
El resultado de la dilatación en señales bidimensionales es,
realizar la operación morfológica de dilatación, se muestra la
generalmente, una señal de mayor valor, es decir, una imagen
aplicación de esta función por medio de un elemento
más clara, puesto que la dilatación maximiza el valor de la
estructural de tamaño 7x7.
señal [1].
I. INTRODUCCIÓN
El efecto visual es tal que los objetos claros aumentan su
La operación morfológica de dilatación es la operación dual de definición frente a los oscuros [3].
la erosión.
La aplicación iterada de este operador haría degradar la
Dada una imagen A, y un elemento estructural B, (ambas imagen, haciendo coincidir el conjunto dilatado con la imagen
imágenes binarias con fondo blanco), la dilatación de A por B [2].
se define como [1]:

𝐴⨁𝐵 = {𝑥|(𝐵̂ )𝑥 ⋂𝐴 ≠⊘} II. OBJETIVOS

Ec. 1: Definición en teoría de conjuntos del proceso de dilatación.


a) Objetivos Generales
 Elaborar una función en MATLAB que realice la
Esta operación representa un crecimiento progresivo del
operación morfológica de erosión a una imagen.
conjunto X. Al pasar el elemento estructurante dentro del
 Comparar el funcionamiento de nuestra función
conjunto, éste no se modificará. Sin embargo, en la frontera
contra la función nativa del software
del conjunto X, al desplazar a B, el conjunto resultado se
b) Objetivos Particulares
expandirá [2].
 Aplicar la operación de dilatación a una imagen
Se puede definir la dilatación como el máximo valor de las predefinida, por medio de un elemento estructural de
traslaciones definidas por la forma del elemento estructurante forma circular.
[3].  Efectuar la operación morfológica con un elemento
estructural diseñado por el usuario de la función.
El valor de dilatación de un píxel (x, y) es el máximo valor de
la imagen en la ventana de vecindad definida por el elemento
estructurante cuando su origen se sitúa en (x, y) [4].

Página 1
III. MATERIAL, EQUIPO Y SOFTWARE Finalmente, se convierten los datos de tipo float de la imagen
dilatada en datos de tipo entero de 8 bits sin signo o uint8 y se
Se requiere de una computadora que tenga instalado el
muestra la imagen inicial y la imagen dilatada.
software MATLAB para la elaboración del código que
realizará la operación morfológica. Además de una imagen sin V. PRUEBAS Y RESULTADOS
importar el formato y modo de color.
Se introducen la imagen a procesar, el elemento estructural de
IV. DESARROLLO forma matricial y la posición del pixel central.

Se le pide al usuario de la función que introduzca la imagen La imagen de entrada se puede observar en la Figura 1.
que será usada para la operación morfológica, la matriz del
elemento estructural a emplear y la posición del pixel central.

La imagen creada pasa por un proceso para cambiar el modo


de color de la imagen de RGB a una imagen en escala de Figura 2: Imagen de entrada de la función.

grises. Después de esto, la imagen en escala de grises pasa por


El elemento estructural a usar en esta prueba es un diamante
un proceso de binarización.
dentro de una matriz de 7x7, ilustrado en la Figura 2.
Se almacenan las dimensiones del elemento estructural y se
procede a reflectar el elemento estructurante tanto en el eje X
como en el eje Y.

Se obtienen las coordenadas del pixel central por medio de un Figura 3: Elemento estructural usado en la función.

ciclo for anidado y de igual forma que con el elemento


estructurante, se efectúa la reflexión de la posición del pixel Se refleja el elemento estructural, y con la posición del pixel
central. central. Para esta prueba, la posición corresponde al número
10. En la Figura 3, se muestran las coordenadas originales
Se obtienen los límites que permiten definir el barrido de la
(X_1 y Y_1) además de las coordenadas del origen reflejado
imagen, así como las dimensiones del conjunto que se
(OP y OQ).
comparará con el elemento estructurante previamente
reflectado.

Se crea una copia de la imagen binarizada y se almacenan las


dimensiones de dicha imagen.

Se inicia el barrido de la imagen a través de un ciclo for


anidado, donde se crea el conjunto que se va a comparar.

Por medio de un segundo ciclo for anidado, se hace la


comparación elemento a elemento entre el conjunto obtenido
de la imagen binarizada y el elemento estructural. Si el valor
Figura 1: Coordenadas originales y reflejadas de nuestro origen.
del pixel en la coordenada a evaluar es igual a cero y el pixel
Se calculan los límites de nuestra imagen para la creación del
del conjunto en la misma coordenada son iguales, el valor de
conjunto a comparar, con el EE. Tras la finalización del
nuestro pixel central cambiará a 0.
proceso de dilatación, la imagen resultada se aprecia en la
Figura 4.

Página 2
VI. DISCUSIÓN

. Se puede observar que el cambio más fácilmente observable


entre el uso del elemento estructural de tipo diamante y el
Figura 4: Imagen dilatada con EE de 7x7 y posición 10.
elemento estructural de tipo H, es la nula aparición de
Se procedió a hacer una segunda prueba con el mismo redondeos en las esquinas de la zona de color negro, además
elemento estructural de la Figura 2, sin embargo, se cambió la de un aumento de área blanca en la zona media de lado
posición de origen a la posición 25, es decir, en el pixel central izquierdo de la imagen dilatada con el elemento tipo H en
del elemento estructural. comparación al elemento de tipo diamante. La área blanca en
la zona central del lado derecho se conserva en ambas
Los resultados de este cambio se muestran en la figura 5.
dilataciones, sin embargo los “brazos” de la tenaza, reducen su
longitud en las Figuras 4 y 5 a diferencia de la longitud de los
“brazos” de la figura 7 donde conservan dicha longitud. Los
cambios más evidentes del proceso morfológico de dilatación
son mostrados con las Figuras 4 y 5 en las cuales se aplicó el

Figura 5: Imagen dilatada, con origen en la posición 25. elemento estructurante de tipo diamante, ya que la Figura 7 se
mantiene de manera muy similar a la imagen de entrada,
Para la última prueba, se procedió a crear un elemento con
debido al elemento que se usó.
forma H de 5x5 y con origen en la posición 20. A continuación
se muestra el elemento estructural inicial. VII. CONCLUSIÓN

En esta práctica, se cumplió con la totalidad de los objetivos


propuestos en su inicio, al lograr la programación de una
función no nativa de MATLAB para efectuar la operación
morfológica de dilatación, se pudo comprobar su
funcionamiento, se compararon las imágenes obtenidas de la
dilatación de dos elementos de diferente tamaño y dimensiones
Figura 6: Elemento estructural H de tamaño 5x5.
con la misma imagen, mostrando resultados diferentes, lo cual
La imagen final del proceso de dilatación con el elemento de la indica que el proceso de dilatación fue acorde al elemento
figura 6, es mostrada en la Figura 7. estructural empleado.

VIII. REFERENCIAS

[1] "Tema 5: Morfología", España.

[2] C. Platero, "Capitulo 6: Procesamiento Morfológico", in

Figura 7: Imagen dilatada con el elemento estructural tipo H.


Visión Artificial, Madrid, 2009, p. 173.

[3]A. Quintana, "Herramientas básicas de Morfología


Matemática", Venezuela, 2016.

Página 3
ANEXO I.- CÓDIGO EJECUTADO EN MATLAB PARA EL CUMPLIMIENTO DE LA PRÁCTICA

function[]=DilatacionFinal(I,w,Pos)
Color=imread(I); %Se leen los valores de las componentes de la imagen
%Se obtienen de manera individual las matrices de las componentes
%de color
R=Color(:,:,1);
G=Color(:,:,2);
B=Color(:,:,3);
Gris=double(0.3*R+0.59*G+0.11*B);
D=uint8(Gris);

%Creamos una matriz de igual tamaño a la de nuestra imagen en escala de


%grises
[r,c] = size (D);
%Asignamos el valor 0 a todos los elementos de la matriz de tamaño mxn
A = zeros(r,c);

%Ciclo for anidado para la comparación de los valores de la matriz de


%la imagen en escala de grises con el valor de umbral, si el valor es
%mayor al de nuestro umbral, el valor en esa posición de la matriz A
%se volverá 1, si el valor es menor se mantendrá como 0
umbral=112;
for i=1:r
for j =1:c
if(D(i,j)>umbral)
A(i,j) = 255;
else
A(i,j) =0;
end
end
A=uint8(A);
end

[p,q]=size(w);
W=(w(end:-1:1,:,:));
Wl=(W(:,end:-1:1,:));
%Se obtienen las coordenadas de la posición introducida por el usuario
Indice=1;
for X=1:p
for Y=1:q
if Indice==Pos
X_1=X;
Y_1=Y;
end
Indice=Indice+1;
end
end
%Reflexión de las coordenadas obtenidas de la posición
OP=p-(X_1-1);
OQ=q-(Y_1-1);

%Calculo de los límites empleados para delimitar el proceso de barrido de


%la imagen y el conjunto empleado en la comparación.
Lim_1=OP-1; LimX=p-Lim_1;
Lim_2=OQ-1; LimY=q-Lim_2;

Página 4
%Se crea una copia de la imagen binarizada y se almacenan sus dimensiones
[a,b]=size(A);
DI=A;
%Inicio del proceso de dilatación
for g=1+Lim_1:a-LimX %Se definen las coordeadas del inicio y fin del barrido
for h=1+Lim_2:b-LimY
Matrix=A(g-Lim_1:g+LimX,h-Lim_2:h+LimY); %Se crea el conjunto que se usará para
compara con EE y definir si el pixel cambio o no su valor
for k=1:p
for l=1:q
if (Wl(k,l)==0) %Condición del proceso de dilatación
if (Matrix(k,l)==Wl(k,l)) %Si el elemento del conjunto es igual al elemento
de EE y este vale 0
DI(g,h)=0; %El pixel central del conjunto en la imagen valdrá 0
end
end
end
end
end
end
%Conversión de datos tipo float a uint8
DI=uint8(DI);
figure()
subplot 121, imshow(A), title('Imagen binarizada');
subplot 122, imshow(DI), title('Imagen Dilatadaada');
end

Página 5

También podría gustarte