stringtranslate.com

Poda (morfología)

El algoritmo de poda es una técnica utilizada en el procesamiento digital de imágenes basada en la morfología matemática . [1] Se utiliza como complemento a los algoritmos de esqueleto y adelgazamiento para eliminar componentes parásitos no deseados (espolones). En este caso, los componentes "parásitos" se refieren a las ramas de una línea que no son clave para la forma general de la línea y deben eliminarse. Estos componentes a menudo se pueden crear mediante algoritmos de detección de bordes o digitalización . Los usos comunes para la poda incluyen el reconocimiento automático de caracteres impresos a mano . A menudo, la inconsistencia en la escritura de letras crea espolones no deseados que deben eliminarse para una mejor caracterización. [2]

Definición matemática

El algoritmo de poda estándar eliminará todas las ramas más cortas que una cantidad determinada de puntos. Si una rama parásita es más corta que cuatro puntos y ejecutamos el algoritmo con n = 4, la rama se eliminará. El segundo paso garantiza que los troncos principales de cada línea no se acorten con el procedimiento.

Elementos Estructurantes

La x en las matrices indica una condición de “no importa”, es decir, la imagen podría tener un 1 o un 0 en el lugar.

Paso 1:Adelgazamiento

Aplique este paso una cantidad determinada de (n) veces para eliminar cualquier rama con (n) píxeles o menos.

Paso 2: Encuentra los puntos finales

Dondequiera que se satisfagan los elementos estructurantes, el centro de la matriz 3x3 se considera un punto final.

Paso 3:DilatarPuntos finales

Realice la dilatación utilizando una matriz de 3x3 (H) que consta de todos los 1 y solo inserte 1 donde la imagen original (A) también tenía un 1. Realice esto para cada punto final en todas las direcciones (n) veces.

Paso 4:Uniónde X1Y X3

Tome el resultado del paso 1 y únalo con el paso 3 para lograr los resultados finales.

MATLABCódigo

%% ---------------% Poda% ---------------claro ; clc ; % Imagen leída enimg = imread ( 'Poda.tif' );  b_img_skel = bwmorph ( img , 'skel' , 40 );     b_img_spur = bwmorph ( b_img_skel , 'espuela' , Inf );    figura ( 'Nombre' , 'Poda' ); subtrama ( 1 , 2 , 1 );imshow ( b_img_skel );título ( sprintf ( 'Esqueleto de la imagen' ));subtrama ( 1 , 2 , 2 );mostrar ( b_img_spur );título ( sprintf ( 'Imagen de esqueleto podada' ));

MATLABEjemplo

En el ejemplo de MATLAB que se muestra a continuación, se toma la imagen original (abajo a la izquierda) y se la esqueletiza 40 veces, luego se la poda para eliminar los espolones según el código de MATLAB anterior. Como se muestra (abajo a la derecha), esto eliminó la mayoría de los espolones, lo que dio como resultado una imagen más limpia.

Véase también

Enlaces externos

Referencias

  1. ^ Russ, John C. (2011). Manual de procesamiento de imágenes (6.ª ed.). Boca Raton: CRC Press. ISBN 978-1-4398-4045-0.
  2. ^ Gonzalez, Rafael C.; Woods, Richard E. (2008). Procesamiento de imágenes digitales (3.ª ed.). Upper Saddle River, NJ: Prentice Hall. ISBN 978-0131687288.