Matlab | Erosión de una imagen

La morfología se conoce como el amplio conjunto de operaciones de procesamiento de imágenes que procesan imágenes en función de las formas. También se conoce como una herramienta utilizada para extraer componentes de imágenes que son útiles en la representación y descripción de la forma de la región. 

Las operaciones morfológicas básicas son: 

  • Erosión 
  • Dilatación

En este artículo, discutiremos la erosión.

Erosión:

  • La erosión encoge los píxeles de la imagen, es decir, se usa para encoger el elemento A usando el elemento B.
  • La erosión elimina píxeles en los límites del objeto.:
  • El valor del píxel de salida es el valor mínimo de todos los píxeles de la vecindad. Un píxel se establece en 0 si alguno de los píxeles vecinos tiene el valor 0.

Acercarse: 

  • Lea la imagen RGB.
  • Usando la función im2bw(), convierta la imagen RGB en una imagen binaria.
  • Cree un elemento estructurante o puede usar cualquier máscara predefinida, por ejemplo. especial(‘sobel’).
  • Almacene el número de filas y columnas en una array y recorra.
  • Cree una array cero del mismo tamaño que el tamaño de nuestra imagen.
  • Dejando los píxeles del límite, comience a mover el elemento de estructuración en la imagen y comience a comparar el píxel con los píxeles presentes en el vecindario.
  • Si el valor del píxel de vecindad es 0, cambie el valor de ese píxel a 0.

Ejemplo: 

MATLAB

% Matlab code for Erosion
% read image
I=imread('lenna.png');  
 
% convert to binary 
I=im2bw(I);
 
% create structuring element             
se=ones(5, 5);
 
% store number of rows
% in P and number of columns in Q.           
[P, Q]=size(se);
 
% create a zero matrix of size I.       
In=zeros(size(I, 1), size(I, 2));
 
for i=ceil(P/2):size(I, 1)-floor(P/2)
    for j=ceil(Q/2):size(I, 2)-floor(Q/2)
 
        % take all the neighbourhoods.
        on=I(i-floor(P/2):i+floor(P/2), j-floor(Q/2):j+floor(Q/2));
 
        % take logical se
        nh=on(logical(se));
       
        % compare and take minimum value of the neighbor
        % and set the pixel value to that minimum value.
        In(i, j)=min(nh(:));     
    end
end
 
imshow(In);

Producción:
 

figura: Imagen de entrada

figura: Imagen de salida

Tomemos otra imagen para realizar la Erosión y aquí usamos diferentes funciones de MATLAB.

Sintaxis:

  • La función imread() se usa para leer la imagen.
  • La función strel() se utiliza para definir el elemento de estructuración. Hemos elegido SE en forma de disco, de radio 5.
  • La función imerode() se utiliza para realizar la operación de erosión.
  • La función imtool() se utiliza para mostrar la imagen.

Ejemplo:

Matlab

% MATLAB code for Erison
% read the image.
k=imread("erosion.png");
 
%define the structuring element.
SE=strel('disk',5);
 
%apply the erosion operation.
e=imerode(k,SE);
 
%display all the images.
imtool(k,[]);
imtool(e,[]);
 
%see the effective reduction in org,image
imtool(k-e,[]);

Producción:

Figura: Izquierda: Imagen original, Derecha: Imagen erosionada

Figura: Imagen de salida

Explicación del código:

  • k=imread(“erosion_exmp.png”); esta línea lee la imagen.
  • SE=strel(‘disco’,5); esta línea define el elemento estructurante.
  • e = imeroda (k, SE); esta línea aplica la operación de erosión.
  • imtool(k,[]); esta línea muestra la imagen original.
  • imtool(e,[]); esta línea muestra la imagen erosionada.
  • imtool(ke,[]); esta línea muestra la reducción efectiva en la imagen original.

La última imagen muestra hasta qué punto se erosionó la imagen original. Hemos utilizado el elemento Estructurante en forma de disco y la imagen que utilizamos también tiene forma circular. Esto nos da el resultado muy deseado para entender la erosión.

Publicación traducida automáticamente

Artículo escrito por kanugargng y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *