Sie sind auf Seite 1von 37

Operaciones basicas con imagenes digitales

Recuento y etiquetado de componentes Si P = (Z2, m, n, N ) es una imagen digital 2-dimensional, se pueden etiquetar las componentes de N realizando dos rastreos la a la. Durante el primer rastreo, para cada punto p N , examinamos los vecinos adyacentes en la la anterior y a la izquierda en la misma la que p. Si existen, ya han sido visitados por el rastreo, y si son negros ya han sido etiquetados. Si todos son blancos, damos a p una nueva etiqueta, y si alguno es negro, p hereda la etiqueta de uno de ellos. Si hay etiquetas diferentes, registramos el hecho de que son equivalentes, esto es, pertenecen a la misma componente. Cuando se completa este rastreo, cada punto negro tiene una etiqueta, y no se ha asignado la misma etiqueta a puntos que pertenezcan a diferentes k-componentes, aunque puede que se asignen etiquetas diferentes a puntos en la misma k-componente. Ahora ordenamos las parejas equivalentes en clases de equivalencia, y escogemos una etiqueta para representar cada clase. Finalmente, realizamos un segundo rastreo de la imagen y sustituimos cada etiqueta por el representante de cada clase. Cada componente ha sido ahora etiquetada de forma unica. El etiquetado de componentes puede llevarse a cabo simultneamente para las compoa nentes de N y de N c.
1

Ejemplos de 4-componentes

0 0 0 0 0 0 0 0 0 0 0 0

0 1 1 0 1 0 0 0 1 1 1 0

0 0 0 1 0 1 1 1 0 0 0 0

0 0 0 0 0 0 0 0 0 1 1 0

0 0 0 0 1 1 1 1 1 1 1 0

0 0 0 0 1 0 0 0 1 1 1 0

0 1 1 1 1 1 1 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0

0 1 1 0 4 0 0 0 7 7 7 0

0 0 0 3 0 6 6 6 0 0 0 0

0 0 0 0 0 0 0 0 0 8 8 0

0 0 0 0 5 5 5 5 5 5 5 0

0 0 0 0 5 0 0 0 5 5 5 0

0 2 2 2 2 2 2 0 0 0 0 0

0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 3 0 0 0 0 4 0 0 2 0 (2, 5) 0 0 5 0 2 0 0 (5, 8) 0 0 5 0 2 0 0 5 0 2 0 0 6 0 0 2 0 0 6 0 2 2 0 0 6 0 2 2 0 0 0 0 0 0 0

0 0 0 0 2 0 0 0 2 2 2 0

0 2 2 2 2 2 2 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0

Ejemplos de 8-componentes

0 0 0 0 0 0 0 0 0 0 0 0

0 1 1 0 1 0 0 0 1 1 1 0

0 0 0 1 0 1 1 1 0 0 0 0

0 1 1 0 0 0 0 0 0 1 1 0

0 0 0 0 1 1 1 1 1 1 1 0

0 0 0 0 1 0 0 0 1 1 1 0

0 1 1 1 1 1 1 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0

0 1 1 0 1 0 0 0 1 1 1 0

0 0 0 1 0 1 1 1 0 0 0 0

0 2 2 0 0 0 0 0 0 3 3 0

0 0 0 0 4 3 3 3 3 3 3 0

0 0 0 0 3 0 0 0 3 3 3 0

0 3 3 3 3 3 3 0 0 0 0 0

0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1 0 0 2 0 (1, 2) 0 0 1 0 2 0 0 (3, 4) 0 0 1 0 2 0 0 1 0 2 0 0 1 0 0 2 0 0 1 0 2 2 0 0 1 0 2 2 0 0 0 0 0 0 0

0 0 0 0 2 0 0 0 2 2 2 0

0 2 2 2 2 2 2 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0

Ejemplo de 4-componentes y 8-componentes

Ejemplo de 4-componentes y 8-componentes

Arboles de adyacencia Sea P = (Z2, m, n, N ) una imagen digital nita. El rbol de adyacencia de P a tiene por vrtices las diferentes componentes conexas negras y blancas, y sus aristas e vienen denidas por la relacin de adyacencia entre componentes negras y blancas. La o ra del rbol es el vrtice asociado al fondo. z a e Un conjunto X rodea a un conjunto Y si cada punto de Y est contenido en una a componente nita de Zk \X. Una componente blanca D es un agujero en una componente negra C si son adyacentes y C rodea a D. El fondo de una imagen digital nita es la unica componente blanca no nita y rodea al conjunto N . Una componente C rodea a una componente D si y solo si el camino de D a la ra z pasa por C. Por tanto, si una componente negra es adyacente a una componente blanca, una de ellas ha de rodear a la otra. Si C es una componente de N adyacente a varios componentes de N c, entonces exactamente uno de esos componentes, digamos D0, rodea a C, y los otros estn rodeados a por C. Al borde de C respecto a D0 se le llama borde externo, y a los otros bordes de C, si los hay, se les llama bordes de agujero. En R3, el rbol de adyacencia tiene la limitacin de que no recoge informacin sobre a o o los tneles de la imagen. Por ejemplo, un toro y una esfera en R3 tienen el mismo rbol u a de adyacencia.
6

B squeda de bordes u Para encontrar todos los puntos del borde de N , podemos rastrear N y comprobar los cuatro vecinos de cada punto negro para ver si alguno de ellos es blanco (o viceversa). Esto se puede hacer con unaoperacin booleana. o As para (m, n) = (8, 4) , p N es punto borde p (p0 + p2 + p4 + p6) = 1, mientras que para (m, n) = (4, 8) p N es punto borde p (p0 + p1 + p2 + p3 + p4 + p5 + p6 + p7) = 1. donde hemos numerado los 8-vecinos de p a partir del situado a su derecha en sentido positivo de giro. Evidentemente, esto produce 1s en los puntos de borde de N y 0s en cualquier otro lugar.

Ejemplos de 8-borde y 4-borde

Ejemplo de 8-borde

Ejemplo de 4-borde

10

Codicacin de bordes o Hay que distinguir entre la nocin de curva borde como una sucesin de puntos y el o o concepto de borde, que es un conjunto de puntos. Por ejemplo, si el conjunto negro es una curva cerrada simple existen dos curvas borde distintas con sentidos de giro opuestos. Una curva borde se determina especicando un punto de comienzo y una secuencia de movimientos alrededor del borde. Movindose de un punto a otro alrededor de un borde, e siempre vamos de un punto hacia uno de sus ocho vecinos. Si numeramos a los vecinos de p como sigue: 3 2 1 4 p 0 5 6 7 Entonces cada movimiento se dene mediante uno de los d gitos 0, 1, . . . , 7 (esto es, por un d gito octal). Una secuencia de movimientos representada por d gitos de esta forma se denomina cdigo de cadenas. Un borde se dene as dando las coordenadas de un punto o de inicio junto con un cdigo de cadenas representando una secuencia de movimientos. o

11

Cdigos de cadenas o

Borde exterior= (3,13)000002222232212344536756666666 Bordes interiores= (3,11)3110075544, (3,8)32217665, (4,5)3175, (6,5)3175

Borde exterior= (2,12)00000222224222422006242446426062006646664422266666666 Borde interior= (2,11)2202000066464444


12

Codicacin de bordes de suras o Existe un acercamiento alternativo y en cierto modo ms natural que dene la frontera a a partir de pares formados por un punto negro y otro blanco 4-adyacentes. Cada uno de estos pares se identica de modo natural con la arista comn a los cuadrados centrados u en dichos puntos, y se denomina sura. Para el caso de borde de suras, si las seguimos alrededor de un borde, en cada movimiento podemos ir a la izquierda, a la derecha, arriba o abajo. Si denotamos estas 4 direcciones por 1 2 p 0 3 estos movimientos pueden ser representados por una secuencia de nmeros de dos bits. u Llamaremos a esta representacin un cdigo de suras. Un borde se especica dando las o o coordenadas de una sura de inicio junto con un cdigo de suras. o Cada movimiento en un cdigo de suras es representado por un nmero de 2 bits, o u mientras que los movimientos en el cdigo de cadenas requieren nmeros de 3 bits; pero o u el nmero de movimientos en un seguimiento de suras es algo mayor que en el cdigo u o de cadenas. En promedio el nmero de bits en ambas representaciones es comparable. u

13

Cdigos de suras o

Borde exterior= ((2,13),(2,14))00000222222422202242444642466064666666666 Bordes interiores= ((3,11),(3,10))20200064644, ((3,8),(3,7))2220666, ((4,5),(4,4))206, ((6,5),(6,4))206

Borde exterior= ((2,13),(2,14))00000222222422202242444642466064666666666 Borde interior= ((3,11),(3,10))20200064644


14

Codicacin mediante cdigos diferenciales o o Para cualquier cdigo de cadena dado, podemos construir un cdigo de cadena difereno o cial cuyos valores representan sucesivos cambios en la direccin, por ejemplo el 0 repreo senta la no existencia de giro, 1 representa 45 de giro a la derecha o a la izquierda, 2 y 3 representan, de forma similar, giros de 90 y 135, y 4 representa un giro de 180. As el cdigo de cadena diferencial, como el cdigo de cadena, tiene ocho posibles valores y o o necesita tres bits por movimiento. Sin embargo, los valores no son igualmente probables, por ejemplo 0 y 1 ser muy comunes, mientras que 4 es raro. Un borde es determinado an mediante la especicacin de las coordenadas del punto de inicio, la direccin inicial y el o o cdigo de cadena diferencial. El caso del cdigo de sura diferencial es anlogo, aunque o o a aqu hay slo tres posibles valores diferenciales, 0 y 90. o

15

Cdigos diferenciales de cadenas o

Borde exterior= (3,13),0,00000-20000-1101-1-1-10-12-3-12-10000000 Bordes interiores= (3,11),3,201012010, (3,8),3,1012001, (4,5),3,222, (6,5),3,222

Borde exterior= (2,13),0,0000-20000-2200-2202024-22-20-22024-22420202-2002020040000000 Borde interior= (2,11),2,0200002020000


16

Cdigos diferenciales de suras o

Borde exterior=((2,13),(2,14))00000-100000-11001-10-11-100-111-1-10-111-1000000000
Bordes interiores= ((3,11),(3,10))11-110011-1100, ((3,8),(3,7))1001100, ((4,5),(4,4))111, ((6,5),(6,4))111

Borde exterior=((2,13),(2,14))00000-100000-11001-10-11-100-111-1-10-111-1000000000 Borde interior= ((3,11),(3,10))11-110011-1100


17

Seguimiento de suras Sean C, D componentes de N y N c, respectivamente, y sean p, q puntos 4-adyacentes de C y D, de tal forma que (p, q) dene una de las suras en el borde de C respecto de D. Sean r y s el par de puntos, 4-adyacentes a p y q, respectivamente, que encaramos cuando permanecemos en la sura entre p y q con p a nuestra izquierda, r s p q Entonces la prxima sura (p , q ) a lo largo del borde viene dada por las tabla o r s p q Giro r s p q Giro 1 s q derecha 0 p r izquierda 1 0 r s ninguno 1 0 r s ninguno 0 0 p r izquierda 1 1 s q derecha segn usemos la 8-conectividad o la 4-conectividad para N . u El algoritmo se para cuando llegamos al par inicial otra vez. Para generar el cdigo de sura correspondiente a este recorrido del borde, ntese que o o las cuatro conguraciones iniciales de p, q, r y s dadas ms arriba se corresponden con a los cdigos de sura de 0, 1, 2 y 3, respectivamente. o
18

Seguimiento de bordes Sean p y q como antes, y sean q = r1, r2, . . . , r8 los ocho vecinos de p, en el sentido contrario al de las agujas del reloj, empezando desde q. Asumimos que C no consta solamente de un punto aislado. Las siguientes reglas denen un nuevo par p , q : 1. Si usamos 8-conectividad para C: Sea ri el primero de los rs negro (tal r existe ya que p no est aislado). Entonces p = ri, q = ri1. a 2. Si usamos 4-conectividad para C: Sea ri el primer 4-vecino negro (esto es, el primero de r3, r5, r7). Si ri1 = 0, tomamos p = ri, q = ri1, y si ri1 = 1, tomamos p = ri1, q = ri2. El algoritmo se para cuando llegamos al par (p, q) inicial otra vez. Esta condicin es o sobre el par (p, q) porque un borde puede pasar a travs de un punto dos veces. e Dos ps sucesivos encontrados por el algoritmo son siempre 8-vecinos, y en el caso en el que C sea 4-conexo, estn 4-conectados a travs de 1s, por tanto todos los ps pertenecen a e a C. Dos qs sucesivos estn siempre 8-conectados a travs de 0s y cuando C es 8-conexo, a e estn tambin 4-conectados a travs de 0s; as todos los qs pertenecen a D, de forma a e e que los ps estn todos en el borde de C respecto de D. Es mucho ms dif demostrar a a cil que constituyen el borde completo.
19

Seguimiento de bordes usando suras Un mtodo alternativo de obtener los puntos sucesivos del borde de C respecto de D e es usar el algoritmo de seguimiento de suras para generar las sucesivas suras (pi, qi) del borde. Si un punto dado p aparece dos o ms veces en la sucesin en el primer trmino de a o e una sura se eliminan las repeticiones. Esta situacin surge cuando un punto del borde o de C tiene varios 4-vecinos consecutivos en D, que se corresponden con varias suras sucesivas en el borde. La secuencia de los primeros trminos que permanecen despus de e e estas eliminaciones es justamente la secuencia de puntos del borde. De hecho, podemos generar el cdigo de cadena directamente a partir del algoritmo de seguimiento de suras. o Por ejemplo, si estamos en la situacin r s o p q y a continuacin giramos a la derecha, aadimos un 7 a la cadena; si no hacemos ningn o n u giro, aadimos un 0, mientras que si giramos a la izquierda, no aadimos nada a la cadena, n n ya que el nuevo primer trmino es an p. Puesto que el algoritmo para el seguimiento e u de borde es ms complicado que el de seguimiento de sura, puede ser ms econmico a a o usar el seguimiento de suras para generar la secuencia de puntos de borde y el cdigo o de cadena, como se ha descrito, ms que usar el seguimiento de borde. a

20

B squeda y seguimiento de bordes u Supongamos que queremos seguir todos los bordes de N para obtener todos sus cdigos o de cadena (la discusin para los cdigos de sura es anloga). Para conseguir esto, o o a podemos rastrear la imagen sistemticamente, esto es, la a la. Cuando encontramos un a borde (por ejemplo, cuando encontramos un punto negro inmediatamente a continuacin o de uno nlanco) lo seguimos. Cuando ha sido completamente recorrido reanudamos el rastreo. Este proceso encontrar todos los bordes, ya que en cualquier borde debe haber un a punto negro con un punto blanco justo a su izquierda (por ejemplo, el punto ms a la a izquierda de un borde externo o el de ms a la derecha de un borde de agujero). Sin a embargo, encontrar el mismo borde repetidamente (en cada la que contenga puntos a de la componente o del agujero), de forma que cada borde ser seguido muchas veces. a Podemos eliminar este problema marcando cada borde mientras lo seguimos, e iniciando el seguimiento de borde slo cuando toquemos un borde no marcado; esto nos asegura o que ningn borde ser seguido dos veces. u a Sin embargo, ahora algunos bordes pueden perderse si hay puntos que pertenezcan simultneamente a dos bordes, de forma que esos puntos se marcan cuando uno de los a bordes es seguido y ya no se vuelven a tener en cuenta.

21

Para evitar este problema, debemos marcar solo los puntos de borde que tienen puntos blancos como vecinos a su izquierda; esto garantiza que nunca tocaremos el mismo borde en una transicin de un punto blanco a uno negro no marcado, pero no interere con la o deteccin de otros bordes que compartan puntos con el ya dado. o Finalmente, si queremos distinguir entre bordes externos y de agujero, podemos etiquetar las componentes conexas de N c antes de buscar los bordes; esto da al fondo una etiqueta distintiva, de forma que los bordes exteriores son identicables a travs de sus e adyacencias a puntos que tengan esa etiqueta. De manera alternativa, podemos usar la siguiente variante de rastreo, seguimiento de borde, y marcado. Usamos dos marcas, l y r, para puntos del borde que tengan puntos blancos a su izquierda y derecha, respectivamente. Iniciamos el seguimiento de borde en cada transicin de punto blanco a punto negro no marcado l, o de punto negro no o marcado r a un punto blanco. Ahora un borde externo siempre se encuentra primero como una transicin de punto blanco a punto negro (en el punto de ms a la izquierda o a de los superiores de la componente de N ), y un borde de agujero siempre se encuentra primero como una transicin de punto negro a punto blanco. Por tanto este esquema nos o permite identicarlos tan pronto como se encuentren.

22

Reconstruccin a partir de los bordes o Supongamos que se nos han facilitado todos los bordes de N . Asumimos que estamos utilizando 8-conectividad para N y 4-conectividad para N c. Para intentar reconstruir N podemos seguir los siguientes pasos: 1. Etiquetamos todos los 4-componentes de 0s, y sea b la etiqueta de la componente de fondo. 2. Marcamos los 1s adyacentes a los bs, por ejemplo con comilla simple. 3. Si l = b es cualquier etiqueta que aparece adyacente a un 1 con comilla, se cambian todos los puntos etiquetados con l a 1s con comilla. 4. Marcamos los 1s adyacentes a los 1s con comilla con asteriscos. 5. Si l es cualquier etiqueta que aparece adyacente a un 1 con asterisco, se cambian todos los puntos etiquetados con l a bs. (Adyacente en todos estos pasos signica 4-adyacente). 6. Los pasos (2)-(5) se repiten hasta que todas las etiquetas de 0s han sido cambiadas a bs o a 1s con comilla. Desafortunadamente, este proceso se interrumpe si algn borde interno y borde externo u de N tienen un punto en comn; ese punto ser adyacente a los bs en alguna etapa, y se u a
23

le asignar una comilla, lo que provocar que los 0s del interior se conviertan en 1s con a a comilla. Para evitar este problema, se nos debe facilitar algo ms que el borde de N . En a particular, supongamos que los 1s que estn sobre ms de un borde estn marcados de a a a una forma especial. Cuando tales 1s son adyacentes a los bs, les asignamos asteriscos en vez de comillas; las etiquetas que aparecen adyacentes a ellos son entonces transformadas a bs, no a 1s con comilla. Si N slo tiene unos pocos bordes, un mtodo de seguimiento de borde de reconso e truccin a partir de sus bordes puede ser ms apropiado que el modo anteriormente o a descrito. Supongamos que se nos facilita el cdigo de suras del borde de C respecto o de D, y las coordenadas del par inicial (p, q). Basndonos en la convencin de que p a o siempre est a la izquierda, esto nos permite encontrar las sucesivas parejas. Conforme a las encontramos, marcamos los ps como 1s y los qs como 0s (en una matriz inicialmente en blanco). Cuando este proceso est completado, el borde de C respecto de D ha sido a completamente marcado con 1s, y el borde de D respecto de C con 0s. Despus de que e todos los bordes de N hayan sido marcados de esta manera, es fcil rellenar el resto de a N (y N c) expandiendo los 1s y los 0s a los espacios en blanco 4-vecinos (pero no entre ellos). El proceso de reconstruccin es algo ms complicado si se nos facilitan los cdigos de o a o cadenas en vez de cdigos de suras y no vamos a tratarlo aqu o .
24

MATs Para cada punto p N , sea Sp el mayor cuadrado de lado de longitud impar, centrado en p, contenido en N y sea rp el radio de Sp. Pueden existir otros puntos q tales que Sp est contenido en Sq ; si no existe tal q, llamaremos a Sp un bloque maximal. a Si especicamos el conjunto de centros p y radios rp, N est completamente determia nado, puesto que cualquier punto se encuentra en al menos un bloque maximal. El conjunto de centros y radios de los bloques maximales se denomina medial axis transformation de N , abreviadamente MAT. Ntese que la representacin MAT puede o o incluso ser redundante, esto es, algunos bloques pueden estar contenidos en uniones de otros. Consideremos las distancias d4(p, q) = |x u| + |y v| y d8(p, q) = max(|x u|, |y v|), que son mtricas en Z Z. e Los puntos a una distancia d4 = t de p forman un rombo centrado en p. En concreto, los puntos a distancia 1 son justo los 4-vecinos de p. Se puede demostrar que d4(p, q) es igual que la longitud del 4-camino ms corto desde p hasta q. a Anlogamente, los puntos a distancia d8 = t de p forman un cuadrado vertical centrado a en p. En particular, los puntos a distancia 1 son los 8-vecinos de p. En general, d8(p, q) es la longitud del 8-camino ms corto de p a q. a
25

La distancia entre un punto p y un conjunto N se dene como la m nima distancia entre p y cualquier punto de N . El dimetro de un conjunto es la mayor distancia entre a dos puntos cualesquiera del conjunto. Observemos primero que el MA (medial axis) de N (= conjunto de los centros de los bloques del MAT) consiste en aquellos puntos de N cuya distancia d8 desde N c es mximo a local. De forma anloga, si denimos el MAT usando cuadrados orientados diagonalmente a mejor que verticales, podemos mostrar que el MA de N consiste en aquellos puntos de N cuya distancia d4 desde N c son mximos locales. a Estas observaciones implican que podemos construir el MAT de N calculando las distancias a N c desde todos los puntos de N y descartando los que no son mximos. a Puesto que el MA es un conjunto de distancias locales mximas, normalmente es basa tante disconexo; de hecho, dos mximos no pueden ser adyacentes a menos que sus a valores sean iguales. Podemos intentar hacer el MA conexo manteniendo algunos de los no mximos. Por ejemplo, en el caso d8, podr a amos conservar p si al menos alguno de sus 8-vecinos tiene una distancia mayor a N c, y si tiene un 4-vecino que es una distancia mxima. Aunque al descartar menos puntos, tenemos una representacin menos a o econmica de N , si podemos encontrar un conjunto de curvas que contengan al MA, o podemos representar esas curvas mediante cdigos de cadenas, pudindose mejorar la o e econom de la representacin. a o
26

Ejemplo de d8-MAT y d4-MAT

27

Algoritmo para calcular MATs Veamos un algoritmo para el clculo de distancias en paralelo. a Sea 0 que vale 1 en los puntos de N y 0 en cualquier otro. Denimos m por induccin o para m = 1, 2, . . . como sigue: m(p) = 0(p) + min m1(p).
d(p,q)1

Obsrvese, en particular, que los 0s (puntos de N c) continan siendo 0s. De forma e u similar, los 1s a distancia 1 de N c (por ejemplo, 1s del borde) permanecen como 1s, puesto que para tales puntos tambin, el m e nimo es 0. Por otro lado, en la primera iteracin, todos los 1s a distancia > 1 de N c (esto es, los 1s interiores) se convierten o en 2s, ya que para tales puntos el m nimo es 1. En la segunda iteracin, todos los 2s o interiores (todos los 2s a distancia > 2 de N c) se convierten en 3s, ya que el m nimo para esos puntos es 2, y as sucesivamente. De esta manera, si d(p, N c) = k > 0, los valores de m(p) para m = 1, 2, . . . , k son 1, 2, . . . , k, respectivamente, y el valor se mantiene k en todas las iteraciones subsiguientes. Tras un nmero de iteraciones igual al dimetro u a de la imagen (2(n 1) para una d4-imagen de tamao n n y n 1 para d8-imagen) se n tiene m(p) = d(p, N c) para todo p. Si queremos encontrar el camino ms corto desde cada p a N c, en la iteracin en la que a o m(p) deja de incrementarse creamos un puntero desde p a uno de sus vecinos que tenga
28

el m nimo valor en la frmula. Este vecino debe estar en un camino ms corto desde p o a hasta N c, as si seguimos los punteros empezando en p, nos movemos a lo largo de un camino ms corto a N c. Ntese que p MA si y solo si no se encuentra en un camino a o ms corto desde otro punto de N hasta N c. a Una versin del algoritmo que calcula todas las distancias (d4 o d8) a N c en slo dos o o rastreos de la imagen es la siguiente. Asumimos que el borde de la imagen est compuesto a completamente por 0s. Sea N1(p) el conjunto de (4- 8-) vecinos que preceden a p en o un rastreo la a la (de izquierda a derecha, de arriba a abajo), y N2(p) los restantes (4 8-)vecinos de p. El algoritmo es como sigue: o 0 si p N c (p) = minqN1 (q) + 1 si p N (p) = min { (p), (q) + 1}.
qN2

As podemos calcular N en un simple rastreo de izquierda a derecha y de arriba a abajo de la imagen, ya que para cada p, ya ha sido calculado para los qs de N1. De forma similar, podemos calcular en un simple rastreo inverso (de derecha a izquierda, de abajo a arriba). Entonces para todos los p tenemos (p) = d4(p, N c) o d8(p, N c), dependiendo de si usamos 4-vecinos o 8-vecinos en el algoritmo.
29

Ejemplo de d8-MAT (Algoritmo de 2 pasadas)

0 0 0 0 0 0 0 0 0 0 0 0 0

0 1 1 0 0 0 1 1 1 1 1 1 0

0 1 1 1 0 1 1 1 1 1 1 1 0

0 1 1 1 1 1 0 1 1 1 1 1 0

0 1 1 1 0 1 0 1 1 1 1 1 0

0 1 1 1 1 1 1 1 1 1 1 1 0

0 0 0 0 0 0 0 0 0 0 0 0 0

Pasada 1

0 0 0 0 0 0 0 0 0 0 0 0 0

0 1 1 0 0 0 1 1 1 1 1 1 0

0 1 2 1 0 1 1 1 2 2 2 2 0

0 1 2 2 1 1 0 1 2 3 3 3 0

0 1 2 2 0 1 0 1 2 2 2 2 0

0 1 1 1 1 1 1 1 1 1 1 1 0

0 0 0 0 0 0 0 0 0 0 0 0 0

Pasada 2

0 0 0 0 0 0 0 0 0 0 0 0 0

0 1 1 0 0 0 1 1 1 1 1 1 0

0 1 1 1 0 1 1 1 2 2 2 1 0

0 1 2 1 1 1 0 1 2 3 2 1 0

0 1 2 1 0 1 0 1 2 2 2 1 0

0 1 1 1 1 1 1 1 1 1 1 1 0

0 0 0 0 0 0 0 0 0 0 0 0 0

30

Ejemplo de d4-MAT (Algoritmo de 2 pasadas)

0 0 0 0 0 0 0 0 0 0 0 0 0

0 1 1 0 0 0 1 1 1 1 1 1 0

0 1 1 1 0 1 1 1 1 1 1 1 0

0 1 1 1 1 1 0 1 1 1 1 1 0

0 1 1 1 0 1 0 1 1 1 1 1 0

0 1 1 1 1 1 1 1 1 1 1 1 0

0 0 0 0 0 0 0 0 0 0 0 0 0

Pasada 1

0 0 0 0 0 0 0 0 0 0 0 0 0

0 1 1 0 0 0 1 1 1 1 1 1 0

0 1 2 1 0 1 2 2 2 2 2 2 0

0 1 2 2 1 2 0 1 2 3 3 3 0

0 1 2 3 0 1 0 1 2 3 4 4 0

0 1 2 3 1 2 1 2 3 4 5 5 0

0 0 0 0 0 0 0 0 0 0 0 0 0

Pasada 2

0 0 0 0 0 0 0 0 0 0 0 0 0

0 1 1 0 0 0 1 1 1 1 1 1 0

0 1 2 1 0 1 1 2 2 2 2 1 0

0 1 2 2 1 1 0 1 2 3 2 1 0

0 1 2 1 0 1 0 1 2 2 2 1 0

0 1 1 1 1 1 1 1 1 1 1 1 0

0 0 0 0 0 0 0 0 0 0 0 0 0

31

Ejemplo de d8-MAT

32

Ejemplo de d4-MAT

33

Reconstruccin a partir de los MATs o Dado el MAT de N , podemos construir N creando cuadrados slidos de 1s con centro o y radio especicados. De forma alternativa, podemos representar el MAT por una imagen N con valores en sus puntos iguales a sus distancias a N c. Podemos, entonces, reconstruir el conjunto completo de distancias a N c aplicando un algoritmo iterativo a N : m(p) = max{0, maxd(p,q)=1 m1(q) 1} si m1(p) = 0 m1(p) si m1(p) = 0

El nmero de iteraciones requerido es una unidad menor al valor de la distancia mxima u a mayor. De forma alternativa, podemos reconstruir las distancias usando el siguiente algoritmo en dos pasos: (p) = max{(p), (q) + 1}, (p) = max{ (p), (q) + 1}.
qN1 qN2

Aqu primero calculamos en un rastreo de izquierda a derecha y de arriba a abajo, y despus en un rastreo de derecha a izquierda y de abajo a arriba. e Se puede demostrar que el MAT es el conjunto ms pequeo de los valores de distancia a n a partir del cual todos los valores de distancia pueden ser reconstruidos usando estos algoritmos.
34

Teorema (Teorema de Euler para complejos lineales de R2). Sea L un complejo lineal del plano. Sean v =nmero de vrtices, u e e =nmero de aristas, u r =nmero de componentes conexas de Lc (regiones delimitadas por L), u c =nmero de componentes conexas de L. u La caracter stica de Euler o gnero de L se dene como (L) = v e. Se tiene que e (L) = v e = c r + 1. El Teorema de Euler establece que la caracter stica de Euler es una propiedad topolgica o de carcter global que puede determinarse contando localmente el nmero de vrtices y a u e aristas. En la prctica, adems, este cmputo puede hacerse en paralelo suponiendo que a a o en cada vrtice hay un procesador que tiene informacin unicamente del entorno de ese e o vrtice, enviando cada uno de esos procesadores esa informacin a un procesador central. e o Existen resultados tericos en los que se demuestra que la caracter o stica de Euler es el unico predicado topolgico acerca de un complejo lineal que puede ser determinado de o esta forma. En R3 la caracter stica de Euler (L) coincide con el resultado de sumar en nmero de u componentes conexas ms el nmero de cavidades menos el nmero de tneles. a u u u
35

Clculo de la caracter a stica de Euler para (4, 8)-imgenes digitales a Supongamos que N es el conjunto negro de una (4, 8)-imagen digital y consideremos su complejo lineal asociado L. Entonces L verica que (L) = v e = c r + 1 donde v = n = nmero de puntos de N y e = nmero de aristas verticales y horizontales u u = a = nmero de adyacencias. Para calcular r = nmero regiones delimitadas por L, u u observamos que estas regiones son de dos tipos: regiones del tipo
x x x x

sin puntos blancos en su interior, cuyo nmero denotamos por s, y regiones con puntos u blancos en su interior. Estas ultimas corresponden a las 8-componentes de N c, cuyo nmero denotamos por r8. Finalmente c = nmero de componentes conexas de L = u u nmero de componentes conexas de N lo denotamos por r4. Entonces queda n a + s + u r8 = r4 + 1. Denotamos (4,8)(N ) = n a + s que se puede computar localmente. Se tiene entonces que (4,8)(N ) = n a + s = r4 r8 + 1. Observacin. Existen otros mtodos locales para calcular la caracter o e stica de Euler, como por ejemplo: (N ) = no de convexidades hacia el noroeste no de concavidades hacia el noroeste. o un mtodo basado en los coecientes de curvatura de los puntos negros de la imagen. e
36

Clculo de la caracter a stica de Euler para (8, 4)-imgenes digitales a Si N es el conjunto negro de una (8, 4)-imagen digital y L su complejo lineal asociado, L verica que (L) = v a = c r + 1 donde v = nmero de puntos reales de N (que u denotamos n) ms los puntos extra (cuyo nmero denotamos por n ) y e = nmero de a u u aristas verticales, horizontales y diagonales que coincide con el nmero a de adyacencias u reales de N ms 2n pues cada vrtice extra divide 2 adyacencias diagonales en 4 aristas. a e Para calcular r =nmero regiones delimitadas por L, observamos que estas regiones son u h x x x de tres tipos: regiones de los tipos dx
x x d xd x

sin puntos blancos en su interior y regiones con puntos blancos en su interior. El nmero u de las primeras (incluidas las otras 3 regiones equivalentes que se obtienen girando sta) e lo denotamos por t. Como n es el nmero de puntos extra, se tiene que hay 4n regiones u del segundo tipo. Finalmente, las terceras corresponden a las 4-componentes de N c, cuyo nmero denotamos por r4. Finalmente c = nmero de componentes conexas de L = u u nmero de componentes conexas de N lo denotamos por r8. Entonces queda u (8,4)(N ) = n + 3n a + t = r8 r4 + 1. Si en t incluimos tambin las regiones triangulares delimitadas por dos vrtices del plano e e digital y uno extra quedar a: (8,4)(N ) = n n a + t = r8 r4 + 1.
37

Das könnte Ihnen auch gefallen