Está en la página 1de 9

Esqueletizacin

Tpicos Especiales en Procesamiento Grfico

Esqueletizacin
Carranza Ath, Fredy Tpicos Especiales en Procesamiento Grfico Escuela Acadmico Profesional de Informtica Universidad Nacional de Trujillo Trujillo Per 2006
Resumen. La esqueletizacin pretende obtener de la imagen, un patrn continuo que contenga la menor cantidad datos posibles, pero que siga aun conteniendo un rastro del objeto original. Para ello existen algoritmos que operan de manera general eliminando los pxeles bajo reglas pre definidas, y detenindose cuando no haya mas cambios que hacer. Hay que tener en cuenta que el tiempo de procesamiento es alto en muchas ocasiones, pero ello generalmente depende del tipo de algoritmo y del tamao de la foto.

1.

Introduccin

Simplificar la forma de un objeto, o reducir la cantidad de datos que ste contiene siempre ha sido un tema de inters en el campo del procesamiento de imgenes. Para ello es necesario contar con tcnicas adecuadas que nos faciliten el poder reducir los datos de los objetos. Unas de las tcnicas ms utilizadas para lograr este objetivo, es la esqueletizacin de las imgenes. Obtener el esqueleto de una imagen significara encontrar un patrn a partir de la forma del objeto, el cual contendr menor datos pero conservar la continuidad y la menor cantidad menor de pxeles posible. Obtener un esqueleto, es un proceso iterativo y puede que demande mucho tiempo de procesamiento ya que generalmente todos los algoritmos, requieren muchos recorridos por toda la imagen. Existen a su vez algoritmos que provienen de estructuras matemticas complejas y otros de clculos lgicos; pero los cuales finalmente producen tener una nueva imagen con menos datos. 2. Definicin

La esqueletizacin es un proceso de quitar de un patrn la mayor cantidad de pxeles posibles sin afectar la forma general del patrn. En otras palabras, despus que los pxeles hayan sido quitados, el patrn debe ser reconocido. El esqueleto obtenido debe tener las siguientes tres propiedades. Tan delgado como sea posible Conectado Centrado

Cuando estas caractersticas son alcanzadas el algoritmo debe detenerse. A continuacin un patrn y su esqueleto.

Figura 1. Un patrn en forma de T, y su respectivo esqueleto.


1

Esqueletizacin

Tpicos Especiales en Procesamiento Grfico

Otra manera de pensar sobre los esqueletos es como el lugar donde convergen los centros de crculos bi tangenciales que entran de manera completa dentro de la regin considerada.

Figura 2. El esqueleto de un rectngulo definido en trminos de crculos bi tangenciales. El trmino Transformacin de eje medio (MAT) y Esqueletizacin son comnmente usados de manera indistinguible. El esqueleto es un imagen binaria que simplemente muestra el esqueleto de por s, mientras que MAT es una imagen de niveles de gris, donde cada punto del esqueleto tiene una intensidad la cual representa su distancia a los lmites del objeto original. Finalmente, el esqueleto de una imagen ser tratado como la primera definicin que dimos, as pues las siguientes referencias a un esqueleto sern como se mencion.
3. TCNICAS EMPLEADAS

En las presentes descripciones, se asumir que los objetos dentro de las imgenes, deben estar sombreados de color negro, mientras que el fondo debe ser blanco. 3.1. Diagrama de Voronoi Los diagramas de Voronoi fueron por primera vez discutidos por Peter Lejeune-Dirichlet en 1850, pero fue hasta mucho despus en 1908 que estos diagramas fueron escritos por Georgy Voronoi, de ah su nombre. Un diagrama de Voronoi es una estructura geomtrica que representa informacin de proximidad acerca de un conjunto de puntos u objetos es decir, el diagrama de Voronoi de un conjunto de objetos geomtricos es una particin del espacio en celdas cada una de la cuales contiene una colindancia con sus puntos ms cercanos, lo que se suele representar no por celdas sino por puntos de manera discreta. De una manera ms formal, tenemos un conjunto de puntos = {pi } tambin llamados sitios en el plano E, la regin poligonal convexa V(i) que contiene solo el sitio pi, el polgono Voronoi de pi se define como el conjunto de todos los puntos que se encuentran mas cerca de pi que ningn otro sitio pj:
V(i) = {p , p E | j i : d 2 ( p, pi ) d 2 ( p, p j )}

Donde d2 denota la distancia entre dos puntos. El conjunto de los lmites V(pI ) de todos V (pi ) es llamado diagrama de Voronoi (VD) o teselacion de Voronoi Vor().
Vor() =

p i

U V( pi )

Esqueletizacin

Tpicos Especiales en Procesamiento Grfico

En palabras sencillas, el diagrama de Voronoi contiene celdas o polgonos de Voronoi los cuales, encierran los puntos pi, para los cuales se cumple siempre que los puntos dentro de los polgonos adyacentes a ste, son los ms cercanos que hay.

Figura 3. Diagrama de Voronoi En el caso que se utiliza una imagen, los puntos que se deben considerar para producir un esqueleto, deben ser no todos los pxeles, sino solamente los puntos de los bordes de la imagen. As y solamente as se conseguir que el esqueleto se forme de una manera correcta Si se siguen los pasos indicados, el diagrama de Voronoi solo necesitar ser intersectado con la imagen a la cual se le esta extrayendo el esqueleto, ya que el diagrama de Voronoi estirar sus aristas hasta fuera de los bordes. Veamos un ejemplo:

Figura 5. Esqueleto de una imagen binarizada a travs del diagrama de Voronoi 3.2. Algoritmo de Zhang - Suen El algoritmo de Zhang Suen, es la variacin de un algoritmo antiguo como el algoritmo de Hilditch y al igual que ese requiere de una cierta mscara y el paso de ella a travs de toda la imagen, de manera tal que los pxeles cubiertos por la mscara son analizados por ciertas condiciones bsicas. De estas condiciones define que el punto sea borrado de la imagen o no. En este algoritmo se utilizan dos subiteraciones, cada una de ellas se encarga de eliminar pxeles de zonas determinadas de la mscara. La tcnica que utiliza este algoritmo es la de los ocho vecinos. Para ello debemos considerar una mscara de 3x3 y de preferencia numeraremos los pxeles internos de la siguiente manera.

Las condiciones que se mencionaron inicialmente, requieren la definicin de dos funciones bsicas. Tenemos la funcin A(p), que representa la cantidad de veces que el patrn 0,1, se repite en la secuencia de puntos de la matriz, tomados desde el punto p2 hasta p2 mismo, de manera horaria. En otras palabras, habr que contar cuantas veces se repite el patrn 0,1 en p1, p2, p3, p4, p5, p6, p7, p8, p1. Y adems se cuenta con la funcin B(p),
3

Esqueletizacin

Tpicos Especiales en Procesamiento Grfico

que se define como el nmero de pxeles 1 alrededor del pxel central. El siguiente ejemplo permitir concebir con mayor claridad las funciones.

P8 P7 P6

P1 P0 P5

P2 P3 P4

P8 P7 P6

P1 P0 P5 B(p0)=2, A(p0)=2

P2 P3 P4

B(p0)=2 , A(p0)=1

Una vez, determinadas las funciones mencionadas, se debe pasar la mascara por toda la imagen, y el pxel central debajo de la mscara ser cambiado al color del fondo, si es que cumple las siguientes condiciones: Para la primera subiteracin 1. 2. 3. 4. 2 <= B(p0) <= 6 A(p0) = 1 p1.p3.p5=0 p3.p5.p7=0 Para la segunda subiteracin 5. 6. 7. 8. 2 <= B(p0) <= 6 A(p0) = 1 p1.p3.p7=0 p1.p5.p7=0

Para entender mejor el algoritmo, es necesario comprender el significado de las mencionan. Condicin 1: 2 <= B(p1) <= 6

condiciones que se

Esta condicin combina dos subcondiciones, primero que la cantidad de vecinos diferentes de cero de p0, sea mayor o igual que dos, y segundo que esta cantidad sea menor o igual que seis. La primera condicin asegura que ningn pxel punto final, el cual no este aislado, sea eliminado. Un pxel punto final, es cualquier pxel que tiene como vecino un pxel del color del objeto. La segunda condicin, asegura que ese pxel sea un pxel en el borde. El siguiente ejemplo aclara mejor las cosas.

P8 P7 P6

P1 P0 P5 B(p1)=1

P2 P3 P4

P8 P7 P6

P1 P0 P5 B(P1)=0

P2 P3 P4

P8 P7 P6

P1 P0 P5 B(p1)=7

P2 P3 P4

En la figura podemos apreciar, que si B(p0) = 1, entonces p0 es un pxel punto final, y adems es un punto del esqueleto, por lo tanto no debe ser borrado. En el siguiente cuadro, se observa que como B(p0) = 0, el punto es un punto aislado, el cual representa a una clase de ruido, pero este algoritmo no encarga de eliminarlo. En el tercer cuadro, se ve que como B(p0) = 7, p0 no es un pxel de borde, por lo tanto no debe ser eliminado. Condicin 2: A(p1)=1 Esta condicin representa una prueba de conectividad. De hecho, si se considera las figuras siguientes donde A(p0) > 1, se observa que si se elimina el pxel p0, el esqueleto quedara desconectado. P8 P7 P6 P1 P0 P5
4

P8 P7 P6

P1 P0 P5

P2 P3 P4

P2 P3 P4

P8 P7 P6

P1 P0 P5

P2 P3 P4

Esqueletizacin

Tpicos Especiales en Procesamiento Grfico

A(p1)=2 Condicin 3, 4, 5, 6:

A(p1)=2

A(p1)=3

Por stas condiciones se asegura que los puntos a borrar pertenezcan al borde sur este y en la esquina noroeste, para la primera iteracin, y para la segunda los de los bordes noreste y la esquina suroeste, validando as que dichos puntos no pertenecern al esqueleto. Norte P1 P0 P5 Sur

Oeste

P8 P7 P6

P2 P3 P4

Este

3.3. Algoritmo de Holt El algoritmo de Holt naci en el ao 1987, y surgi para modificar las reglas que impona el algoritmo de Zhang Suen, y transformar dichas reglas en expresiones lgicas, de manera que el tratamiento de los patrones y las mscaras fuese en forma de ecuaciones. As pues Holt propuso resumir las ocho reglas, cuatro para cada una de las dos subiteraciones, en dos simples expresiones booleanas. Las expresiones se definen como: Para la primera iteracin: V(C) (~ edge(C) ( V(E) V(S) ( V( N) V(O)))) Para la segunda iteracin: V(C) (~ edge(C) ( V(O) V( N) ( V(S) V(E)))) Donde la funcin V, se define como:
Verdadero , color( X ) = Negro V( X ) Falso , color( X ) = Falso

Y edge, o borde, como:


Verdadero , A( X ) = 1 2 B( X ) 6 edge Falso , en caso contrario

Donde A y B, son las funciones definidas por el algoritmo de Zhang Suen, y mencionadas en el apartado 3.2. Holt, propuso a su vez combinar las dos expresiones anteriores en una sola, de manera que solo se produzca una sola iteracin en el recorrido de la imagen. La expresin resultante fue la siguiente:

4.

IMPLEMENTACIN

El algoritmo a implementar es el algoritmo 3.2, el algoritmo de Zhang Suen. A continuacin veremos el pseudocdigo del algoritmo.
5

Esqueletizacin

Tpicos Especiales en Procesamiento Grfico

Entrada: Imagen I Salida: Esqueleto hacer para i = 1 + w:nf - w para j = 1+ w:nc - w si I(i,j) es un punto de color negro 0 llenar en W, todos los vecinos del pxel si hay algn pxel blanco en W si fB(W)>= 2 y fB(W) <= 6 si fA(W) == 1 si W(1,2) == 255 o W(2,3) == 255 o W(3,2) == 255 si W(2,3) == 255 o W(3,2) == 255 o W(2,1) == 255 marcar el pxel i,j como candidato a ser borrado fin si fin si fin si fin si fin si fin si fin para fin para borrar todos los pixeles marcados para i = 1 + w:nf - w para j = 1+ w:nc - w si I(i,j) es un punto de color negro 0 llenar en W, todos los vecinos del pxel si hay algn pxel blanco en W si fB(W)>= 2 y fB(W) <= 6 si fA(W) == 1 si W(1,2) == 255 o W(2,3) == 255 o W(2,1) == 255 si W(1,2) == 255 o W(3,2) == 255 o W(2,1) == 255 marcar el pxel i,j como candidato a ser borrado fin si fin si fin si fin si fin si fin si fin para fin para borrar todos los pxeles marcados mientras mas pxeles puedan ser marcados como candidatos

Vale aclarar que el algoritmo en las iteraciones, no debe borrar los pxeles, sino que debe marcarlos, ya que si se cambian los colores de los pxeles a medida de cmo avanza el algoritmo, el resultado no ser el esperado. De manera didctica se presenta una imagen, donde el algoritmo ha hecho las dos iteraciones, y finalmente acaba resultando en el esqueleto. Como se puede apreciar, a la primera iteracin los pxeles a eliminarse con los de la parte este y sur, y en la segunda son los pxeles del oeste norte.

Esqueletizacin

Tpicos Especiales en Procesamiento Grfico

(a)
5. RESULTADOS

(b)

(c)

La implementacin fue realizada en el MatLab, y las imgenes que se procesaron, fueron imgenes binarias sencillas y no de mucho tamao. Entrada Salida Iteraciones

26

16

13

43

Esqueletizacin

Tpicos Especiales en Procesamiento Grfico

34

11

15

17

15

21

34

Esqueletizacin

Tpicos Especiales en Procesamiento Grfico

6.

CONCLUSIONES

- Los algoritmos revisados, presentan diversidad de enfoques, pero los cuales por su particularidad, pueden o no obtener exactamente el mismo resultado. Si bien es cierto obtiene un esqueleto puede que este no sea el mismo para todos los mtodos. - El algoritmo implementado funciona muy bien con las imgenes presentan formas irregulares y rectas, as pues lo demuestran los resultados anteriores. Pero si bien es cierto que el resultado es efectivo, vale saber que cuando se trata de este algoritmo, las formas curvas generalmente quedan con un esqueleto poco reconocible. - Para la obtencin de cualquier esqueleto el tiempo de proceso siempre es algo largo, ya que los procedimientos necesitan barrer la imagen continuamente. Y el proceso se debe estar repitiendo muchas veces, ya que solo parar cuando ya no se pueda esqueletizar ms la imagen.
REFERENCIAS BIBLIOGRFICAS

[1] D. AZAR, Skeletonization[en lnea], Canada Montreal, 1997, disponible en:

http://cgm.cs.mcgill.ca/~godfried/teaching/projects97/azar/skeleton.html
[2] B. FISHER, S. PERKINS, A WLAKER, E WOLFART, Hypermedia Image Processing Reference[en lnea],

Universidad de Edinburgo, 1994, disponible en: http://www.cee.hw.ac.uk/hipr/html/skeleton.html


[3] D. MERAD, M. MALLAN, S. LELANDAIS, Skeletonization of Two-Dimensional regions Using Hybrid

Method, Paper, Francia, disponible en: http://wscg.zcu.cz/wscg2004/Papers_2004_Short/K05.pdf


[4] M. PAGOLA, Imgenes binarias[en lnea], Universidad Pblica de Navarra, 2004

http://www.ayc.unavarra.es/miguel.pagola/binarias.htm
[5] T.Y. Zhang, C.Y. SUEN, A fast parallel algorithm for Thinning digital patterns, Paper, Canada Montreal,

1984
[6] M. GIUSTI, M. VILA, G. LUJAN, Manuscript Document Digitalization and Recognition: A First

Approach, Mar del Plata Argentina, 2005

También podría gustarte