¿Cómo encontrar el esqueleto interior y exterior de imágenes binarias usando MATLAB?

La esqueletización es un proceso para reducir las regiones de primer plano en una imagen binaria a un remanente esquelético que conserva en gran medida la extensión y la conectividad de la región original mientras desecha la mayoría de los píxeles de primer plano originales. En este artículo, veremos cómo encontrar el esqueleto interior y exterior de imágenes binarias utilizando la función incorporada de MATLAB.

Adelgazamiento: El adelgazamiento es una operación morfológica realizada en imágenes binarias. Elimina algunos píxeles de primer plano seleccionados de las imágenes binarias y, por lo tanto, adelgaza la imagen. Matemáticamente, es la diferencia de la imagen binaria y el resultado de la transformación aleatoria aplicada en la misma imagen binaria.

  • Esqueleto interno de la imagen: cada imagen binaria se puede reducir infinitas veces. La estructura interna se obtiene cuando la operación de adelgazamiento se aplica infinitas veces hasta que la imagen resultante tiene un grosor de 1 píxel. Finalmente se obtiene el esqueleto interno subyacente de la imagen binaria.
  • Esqueleto exterior de la imagen: el esqueleto exterior de la imagen consiste solo en el límite y se eliminan los píxeles interiores de la imagen. Es diferente de la detección de bordes porque en la detección de bordes detectamos todos los bordes interiores junto con los bordes de los límites. En el esqueleto exterior, el resultado solo consiste en el límite exterior y se eliminan todos los píxeles interiores.

Función utilizada: 

  • La función incorporada imread() se usa para leer la imagen.
  • La función incorporada rgb2gray( ) se utiliza para convertir imágenes en color RGB a escala de grises.
  • La función incorporada bwmorph() se usa para encontrar el esqueleto de la imagen.
  • La función incorporada imtool() se usa para mostrar la imagen.

Ejemplo:

Matlab

% Find Skeleton of a binary image.
% read the image.
k=imread('skeleton.png');
 
% Convert into grayscale.
k=rgb2gray(k);
 
% apply morphological operation.
k1=bwmorph(k,'skel',Inf);
 
% display original image.
imtool(k);
 
% display skeleton of image.
imtool(k1);

Producción:

Figura 1: Imagen de entrada

 

Figura 2:Imagen de salida

Figura 3: Resultados en GFGlogo

Ejemplo:

Matlab

% MATLAB code for remove
% inner pixels of image.
% read the image.
k=imread('skeleton.png');
 
% Convert into grayscale.
k=rgb2gray(k);
 
% Apply morphological operation.
k2=bwmorph(k,'remove',Inf);
 
% display original image.
imtool(k);
 
% display boundary image.
imtool(k2);

Producción:

Figura 4: Imagen de entrada 

 

Figura 5: Imagen de salida

Figura 6: Resultado en GFGlogo

Publicación traducida automáticamente

Artículo escrito por pintusaini 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 *