You are on page 1of 57

.

UNIVERSIDAD AUTONOMA METROPOLITANA


<.
UNIDAD IZTAPALAPA
PROYECTO DE INVESTIGACION:
/
J
REPRESENTACION DE IMAGENES POR MEDIO DEL '&TODO "ARBOLES CUATERNARI-**
Asesor8 Pedr o Flores Surez,
Alumnos: Av i Ka Cruz Roberto
&>e z Ctdrezo Martha Adriana
i
Ol NDoeE
.
L
I
I. Introduccibn . . . . . . . o . . . . . . . . . 1
11. Tchicas para la representacibn de imgenes . . 2
A. Arboles Strip . . . . . . . . . . . . . I . . 3
B. Quadtrees. . . . . . . . . . . . . . . . . . 4
C-Oct-trees. . . . . . . . . . . . . . . . 6
111. Especificaciones del proyecto . . . . . . . . 8
A. Plan de trabajo . . . . . . . . . . . 9
.
IV, Diseo .lgico del sistema . . . . . . . . . . 10
V. Elecci6n del lenguaje . . . . . . . . . . . . . 13
Vi . Herramientas . . . . . . . . . . . . . . . . . 15
VII. DiseKo ffsico del sistema'\, . . . . . . . . . . 17
A. Definiciones . . . . .\. . . . . . . . . . 17
B. Generacin de un rbol cuaternario . . . . 20
\
1
C. Modikaciones a l a Estructura de Datos . . . . 24
1. Anlisis del algoritmo Construye . . . . 27
-
D. Calculo de propiedades geomtricas . , . . 33
1. Area. . . . . . . . . . . . . . - 34
2. Centroide . . . . . . . . . . . . . 35
E. Operaciones de Conjuntos . . . . . . . . . . 36
b
1. Complemento. . . . . . . . . . . . . . . 36
2. Interseccion . . . . . . . . . . . . . . 37
3. Union. . . . . . . . . . . . . . . . . 42
F. Girar una Imagen . . . . . . . . . . . . . - 47
VIII. Car t as IPO . . . . . . - . . . . . . . . . . . . 48
I X, Conclusiones , o . , , , .) , , . . , , , 49
X, Bibliografia u . . , , . , , . . , a . , , . I , , 50
I-,
.
En este proyecto de investigacin estudiaremos el tema de
"representacin . de imgenes" mediante el mtodo rboles
cuat or r ur i o-, " Quadt t -ees" , con la finalidad de crear- un sistema
de graficacin. (Por congruencia d e nomenclatura seguiremos
manejando el ter-mino Quadtr-eee en lo sucesivo).
Haremos una comparacin de otras tcnicas de representacin de
imgenes con el mtodo Quadtrees y esplicar-emos el por qu
elegimos este.
Para el estudio d e los Quadtrees nos basamos en los artculos ,
mencionados en la bibliografa y analizamos -10s algoritmos y las
aplicaciones que tienen. Dentro d e las aplicaciones est, por
ejemplo, la creacin de sistemas de informacin geogrfica. Que se
pueden hacer gr aci as a l as caracteristicas de los Quadtrees.
Las ventajas de usar Quadtrees. para la representacibn de imgenes
son el poder ejecutar operaciones sobr e conjuntos como la
superposicin de dos imagenes, unin de dos imgenes, obtener el
complemento de una imagen, tambin nos pe-mite calcular el Area,
el permetro, el centro de masas, etc&ter&
Far-a la implementacin del c.istema estudipmos a el lenguaje de
programaci6n que se adecuar-a a la necesidades del mi s mo. Dentr-o d e
las especificaciones del proyecto y el diseo lgico del sistema
explicaremos tales necesidades, y hablaremos en o t r o tema del por
queelegimos el lenguaje "C", as como tambin expondremos los
problemas que tuvimos y l a solucin de estos a l implementar los
algor-itmos en dicho lenguaje.
Dentro de l diseo fsico del sistema explicaremos el algoritmo de
creacin de un Quadtree, la estructura de datos que utilizamos y
el anlisis de los dems algoritmos. Tambin se encuentran los
algoritmos escr-i tos ya en lenguaje "C", documentados para dar una
mayor semblanza de estos. L
Par a hacer una documentacibn formal del sistema utilizamos las
cartas IF0 ( Input Process Ouput) para todos los procedimientos y
funciones desarrolladas implementadas.
1
8
Las estructuras de datos jerrquicas han llegado a 5er una tcnica
importante en varias ramas de la computacin: procesamiento
de idgenes, geometra computacional, sistemas de informacibn
geogrfica, g r d f icas, t-obdtica, cut -vas para r-epr-esen tar
estructuras, volumencs.
Estas estructuras, estan basadas en el principio de descomposicin
recursiva ( similar al, mtodo de dividir para vencer) .
Las estructuras de datos son muy &tiles ya que 5e encuentran sobre
subcon juntos de datos. Estas estructuras tienen una representacin
y tiempo de ejecucin eficientes para realizar operaciones de
conjuntos. Y esto hace que resulten atractivas por su cl ari dad y
fcil implementacin. Ya que Quadtree es una estructura de datos
sencilla y de facil implementacin nos pareci interesante el
estudio de es t a tcnica de representacin de imgenes.
,
A continuacin se presentan, en algunas tcnicas que
tambin usan estructuras de datos para la representaci6n de
imgenes. Es t o con e l ob jeto d? comparar-laskon Quadtree.
1
i
2
1
fJ0.A'. ARBOLES STRIP
.
Esta es una tcnica de representacibn jerarquica para curvas,
consistiendo en arboles bi nari os con un nodo (dato) especial en
cada nodo. Este dato es llamado ' s tri p' y al arbol que contiene
estos datos se l e- l l ama arbol ' stri p' .
Las cut-vas pueden set- codificadas y desplegadas a vari as
resoluciones. La r-epresentacibn es cerrada baj o l a interseccin y
unibn. Es t a es una tcnica que1 se basa en l a interpolacin l i neal ,
l a cual hace un importante ahorro de espacio, ya que no representa
todos l os puntos expl citamente y es comparable en cuanto espacio
a l as representaciones 'raster' que representan muchos de l os
puntos explcitamente. Las curvas son aproximadas por pollgonos
dados por una l i s ta, de puntos Xo, ... . . , Xn subconjuntos, l os
cuales pueden ser col ineales.
Lac; operaciones que se pueden hacer con esta tcnica son: Longitud
de una curva, I nterseccin de dos curvas, Unin de dos curvas,
Area de una curva, Determinar s i un punto es t a en una area,
I ntersectar dos areas.
En Geograf a se uti 1 izan curvas para representar 1 ineas,
carreteras, ri os en un mapa. Una coleccin de mapas puede ser
vi sta como una Ease d e datos, en la C U ~ podriamos hacer l as
siguentes consultas:
1.- Encuentra el punto donde una carretera se i ntersect con
un ri o.
2.- I nvestiga s i e l punto X se encuentra en l a region Y.
3.- Despliega un subconjunto de caracter sti cas de un mapa
que aparezca en un sector X . r X.
L
. .
001. B. QUADTREE
Los Qua d t r e e s son una e s t r u c t u r a d e d a t o s q ue se usa pa r a
c o mpac t ar l a r - e pr e s e nt ac i n de una imagen. La g e n e r a c i n d e l
Qua d t r e e es me di ant e l a d i v i s i h n d e l a i magen e n c ua d r a nt e s y l a
i magen d e c a da c ua d r a nt e se s u b d i v i d e e n c ua d r a nt e s y as1
s uc e s i v a me nt e se ha c e l a mi sma o p e r a c i n h a s t a o b t e n e r b l o q ue s
( p o s i b l e me n t e d e l tamao d e un p i x e l ) que c o n s i s t e n e n 1' s o O's.
For e j e mp l o , c o n s i d e r e una i magen ( f i g u r a 00- 0) r e p r e s e n t a d a p o r
c o r r e s po nde n a l a i magen, y ltzts O's a l a p a r t e de a f u e r a d e la
t i magen. E l r e s u l t a d o e n b l o q ue s pa r a l a ma t r i z d e l a f i g u r a 00-00
queda en l a f i g u r a O!l-OOO. Y f i n a l me n t e el Qua d t r e e r e s u l t a n t e 10
podemos v e r e n l a f i g u r a 00-OW.
I
I
I
una ma t r i z 2' x 2 ' ( f i gur - a 00- 001, o b s e r v e que los 1' 5
I
No t e que l a r - ai z d e l r b o l es l a ma t r i z A, e s t a r-aiz se d i v i d e e n
nodo se s u b d i v i d e en 4 y a s i s uc e s i v a me nt e h a s t a l l e g a r a los
no do s t e r mi n a l e s que sol o c o n t i e n e n 0' 5 o 1's.
4 nodos, c o r r e s p o n d i e n t e s a 1ms c ua d r a nt e s NW, NE, CW, SE, cada
En l a f i g u r a 00- OW del Qua d t r e e los no do s I NTERNOS 1 os
t e r mi n a l e s con un
y los Ydoa
i d e n t i f i c a mo s con un semicrculo
c ua dr o BLANCO o NEGRO.
E l t i p o d e pr o bl e ma s que podemos r e s o l v e r 1 a p l i c a r el mt odo
Qua d t r e e s e r i a , por E! jemplo, e n un s i s t e ma d e i nf owr mci bn
g e o g r f i c a :
Co n s i d e r e s e una b a s e d e d a t o s que consiste e n i mgenes d e mapas y
p r e g unt a s t p i cas.
La b a s e d e d a t o s nos puede pt mpo r c i o na r l a i magen d e l mapa que
c ont e nga, p o r e j e mp l o , l a s z onas e n donde es abundant e l a l l u v i a ,
y o t r a i magen que c o nt e ng a l as l u g a r e s e n donde e5 mejor el
c u l t i v o d e l a v i d . Te ni e ndo ya, l a s dos i mgenes podemos h a c e r una
i n t e r s e c c i n y o b t e n e r d a t o s i n t e r e s a n t e s para el e s t u d i o de l a
geogr af f a. .L
Con las i mgenes que tenemos en la base d e d a t o s podemos hacer-
t o d a s l a s o p e r a c i o n e s 1 6 g i c a s que no s p r o p o r c i o n a Qua dt r e e , as
p o d e r tener r- i - sul t ados e f i c i e n t e s y r p i d o s para el s i s t e ma d e
i nf o r ma c i n geogr Pf ico.
4
FI GURA 0 0 - 0
I MAGEN
W
.
.
N
E
S
FI GUR6 00-00
REPRESENTACION DE LA
IMAGEN EN UNA MATRIZ
F I GURA 00 -000
REPRESENTACI ON EN BLOQUES
\
M
F I GURA 00 -ow
QUADTREE
00.C. OCT - TREES
La v e r s i n en t e r c e r a di me ns i n d e l m t odo d e Qua d t r e e s es l l amada
Oc t - t r e e , p r o c e d e por s u b d i v i s i n r e c u r s i v a de un vol umen e n o c ho
o c t a n t e s h a s t a q u e c a d a o c t a r i t e ha si do r e d u c i d o d una f or ma
m ni ma.
E s t e p r o c e s o es r e p r e s e n t a d o p o r un At-bol d e gr-ado o c h o e n el c u a l
la r a i r r e p r e s e n t a el o b j i e t o entet; o, cuyos o c t a n t e s e s t n
e t i q u e t a d o s como se mue s t r a e n l a f i g u r a s i g u i e n t e , y los nodos
h o j a c o r r e s p o nd e n a a q u e l l o s c ub o s p a r a los c u a l e s y a n o es
n e c e s a r i a m s s u b d i v i s i n .
Los nodos t e r mi n a l e s s o n l l a ma do s NEGRO o BLANCO ( de pe ndi e ndo si
c ubo s c o r r e s p o n d i e n t e s
i magen d e l ObJe t o . Los
nodos i n t e r n o s s o n l l a ma d o s GRIS. La i i g u e n t e f i g u r a muest r a un
e s t a l l e n o o v ac o ) , de pe ndi e ndo si
e s t n e nt e r a me nt e f uer-a o d e n t r o d e
li\
n y su c o r r e s p o n d i e n t e Oct-tree. " b
1
Ls v e n t a j a d e est a rept - esent aczi n s e der - i va de el he c ho q ue es una
o r g a n i z a c i n e s t r u c t u r a d a que pe r mi te que l a s imageries t e ngan una
r e p r e s e n t a c i n c ompac t a y una i mpl e me nt a c i n e f r c i e n t e .
Al g una s o p e r a c i o n e s q u e se pueden r e a l i z a r s on l a s s i g u i e n t e s :
t r a s l a d a r . y t-citar una i m a g e n , t r a s l a d a i y aumentar o r e d u c i r una
imagen, el imincin de s u p e r f i c i e s ocultas y d e r i v a c i n d e
sec c i ori es a t-b i t r a r- i as.
Cllgunas aplicaciones son las siguientes: Anlisis de secciones,
reconstruccin dinmica de un corazn latiendo o * d e un pulmn
respirando, por medio de la toinografla por computacin.
La imagen de un cerebro obtenida por resonanc i a magntica
almacenada en un arreglo de 64 x 64 x 64 = 262,144 bits, puede ser
almacenada en un oct-tree el cual utilizar-la 248,736 bits. .
L
7
Actualmente exist.en di versas ttcni cas para e l manejo de imgenes
por medio d e computadoras com(3 lo vimos en el punto anter-ior,
entre e l l a s est l a de Quadtrees. Elegimos este mtodo por que
permite, mediante e l uso de estructuras de datos, el manejo
ef i ci ent e y r-&pido de algunas operaciones que ot r as tcni cas no
poseen .
En e l estudi o de los al gori tmos para l os Quadtree se observan
algunas ventaj as que ti ene est e m&todo par a hacer operaciones
sobre imgenes.
En primer l ugar podemos representar una f i gur a y hacer operaciones
sobre e l l a tomado todo det al l e de &St a, ya que el Quadtree vi s i t a
cada pi xel de l a imagen.
i
Como usamos estructuras de datos para l a generacin de l os
Quadtree e5 f c i l , entonces, hacer- operaciones sobre conjuntos como
son l a unin, obtener e l complemento, etctera.
Usando esta tcnica de representaci 6k de imgenes, nuestro
obj et i vo es hacer consul tas ( uti l i zando op raci ones l hgi cas) entre
dos o ms imgenes. Las aplkcaciones d e estos estudi os estan
orientados a l a car t ogr af a o a hacer un sistema de ensenanza
sobre la5 operaciones bsi cas de conjuntos ( pr i nci pi os bsi cos
16gi cos) , en donde el estudi ante pueda hacer operaciones de
conjuntos ayudado d e imgenes p a r a el-mejor entendimiento de estos
conceptos.
\
\ *
i
8
I
I
I
I
I
I
I
1
1
I
I
I
1
I
1
I
I
I
I
I
t- 000. A. PLAN DE TRABAJO
.
1. Lectura de artculos con el tema "Representacin de imgenes con
Arboles Cuaternarios (Quadtree) ".
2. Disefo lbgico del problema.
3. Identificar las funciones de creacin de un rbol cuaternario y
con esta estructura realizar operaciones con las imgenes como:
unin, interseccibn, complemento, Ar ea, centro de masas.
4. Estudio de las necesidades para hacer las funciones anteriores y
del equipo de trabajo. Revisar todas las herramientas y
documentacin necesarias.
13. Eleccin del lenguaje (ventajas y desventajas).
6. Elaborar los algobitmos y realizar l as funciones de operaciones
con las imgenes (creacin de la primera biblioteca de funciones en
C del sistema).
7. Elaborar los algoritmos y realizar las #unciones de graficacibn
(segunda biblioteca: funciones de graficacibn)
8. Elaborar los algor-itmos y realizar las funciones para la
creacin del ambiente con e l usuario: pantallas, menus, etcetera.
(Ter-cera biblioteca d e funciones).
9. Unin de las tres bibliotecas en un m b h l o principal.
- Hasta este punto queda terminado todo el kmbiente par-a el s i s t ema.
Acepta una o dos imagenes y puede hacer diferentes operaciones con
ellas .
\
10. Elecci6n de una aplicacitin.
- Las tres bibliotecas y el mdulo princiapal que las une estan
creadas en forma independiente para poder adaptarlas a cualquier-
aplicacin cin necesidad de modificarlas. Solo se necesita crear el
nuevo ambiente.
11. Documetacibn.
12. Revisin.
El diseo lgico del sistema es muy sencillo, ya que, la nica
informacin de entrada es la o las imagenes, que pasan por un
dnico proceso en el que se elige la opet-acii5n lgica que se desea
hacer, y como salida se tendr$ la imagen de resultado de dicha
oper-ac i n .
I MAGEN ( ES) [ = - I - I MAGEN
ENTRADA operacion lgica RESULTADO
\
Par a la eleccin de la operacin, se necesita crear una biblioteca
de operaciones con lag imagenes y una de herramientas para el
desplegado de stas.
El sistema consta de un Brea de trabajo, que contiene tres menilis,
y para facilitar su uso, el usuario p ede llamar a cualquier
opcin de cualquiera de los tres mentlis d h t r o del Area de trabajo,
En seguida se muestra un diagrama del si st
del sistema
Mend
Creacin de operaciones general
una imagen con l a imagen
10
La pmntalla de trnbnJo consta de l as si gui entes Areas:
I MAGEN 1
AREf i :
La idea del diagrama del sistema es que e l us uar i o pueda d i b u j a r
una imagen en el Area de trabajo y con @{ l a genere un Quadtree y
despus de esto pueda hacer cual qui er opgaci n 16gica del me& de
operaciones
El men de
opc i ones:
Tecla
F l
FZ
F3
F4
FS
F6
F7
F8
F 9
a
con l a imagen.
creacin de una imagen consta de l as s i gui ent es
Significado
Ayuda
pun t o
b o r r ar un punto
Lnea
C rcul o
Ar c o
Cuadro
Rellenar cuadr ant e
b o r r ar el Areq de t r ab aj o
C
l i
c
I
I
LENGUAJE "C"
"C" es un lenguaje de alto nivel, sin embargo, la denaminacibn de
"altura" d e un lenguaje, depende de las facilidades que ofrezca
para la comunicacibn con la arquitectura interna de la
computadora, con sus registros, con las localidades de memoria,
etc. En este sentido el lenguaje "C" ofrece caractersticas que lo
diferencian de los ot r os 1engua;ies de alto nivel.
Y por estas diferenciaq, nos interes el lenguaje "C" para hacer
los algoritmos del proyecto.
PRINCIPALES APLICACIONES DEL LENGUAJE C
Aunque "C" se ha utilizado para programacin de sistemas, como
p o r ejemplo, el sistema opet-ativo UNI X est escrito en un 90% en
distintas reas de lenguaje "Cii, ha ganado popularidad
aplicaci6n.
=\
1. Aplicaciones numricas,
2. Procesamiento de textos,
3. Procesamiento de bases de datos,
4. -Sistemas de comunicacihn, etc
Ritchie explica que "C" e5 un lenguaje de pr-ogramacin de empleo
general, caracterizado por su c:oncisin y por poseer un moderno
flujo de control y estructuras de datos, asi como un rico conjunto
de operadores. "C" no e5t especializado en ningh r ea particular
de operacin, dada su carencia d e restricciones y su generalidad.
Por- esto "C" es m a s eficaz y conveniente para muchas tareas a
diqerencia de otros lenguajes de? alto nivel. ,
El libro Lenguajes de programacin de allen E. Tucker, hace una
evaluaci6n de las caractersticas del lenguaje "C" y es l a
sigui en te:
4
EVALUACI CI N GLOBAL DE "C"
1, Expresividad Bueno.
2. Bi en def i ni do Excelente
3. Estructuras de datos Excelente
4. Modularidad. Exc el-en t e
d. Entrada-lida. Bueno
8. Transportabi l i dad Excelente
7. Pedagogla Regular
8. Generalidad Bueno
9. Ef i ci enci a Excelente
ha demostrado ser un lenguaje extiemadamente eficaz
I 1 c I t
expresi vo para una extensa gama d e aplicaciones de programacin.
Es eficiente por su variedad de tipos de datos y operadores de
t-elativo "bajo nivel''.
\
La caracterfstica de excelente en el uso d e las estructuras de
datos, fue la razn mas importante que nos llev a elegir a "C"
como lenguaje par a el proyecto, dado que los algoritmos necesitan
de una definicin de estructuras de datos.
tiene un rico conjunto de operadores, que permiten la
I I c II
expresi6n de algori tmos para manejo detal lado de estructuras de
datos, apuntadores, listas, etc.
La modularidad est soportada fuertemen a e por la compilacin
independiente de funciones, el poder crea+ bibliotecas de uso
general, etctera. Esta caracterstica hace Que nos interese an
mas el lenguaje.
"C" e5 independiente de cualquier arquitectura de mquina en
pat-ticular, de aqu la caracterfstica de que "C" sea
transportabl e. Y tambin podemos aadir que los operadores, tipos
de datos y bibliotecas en funciones en 'IC" son bastos y
transportabl er, haciendo que 5u aplicacin sea potencialmente
amplia.
"C" permite, de manera completa y conveniente, la expresin de
algovitmos de programacin estructurada, as c o mo la codificacin
de aplicaciones especializadas.
L
Hay que tomar en cuenta que adems de la eleccin del lenguaje,
tuvimos que elegir el tipo d e computador, y con esto, como es
lgico, se reduce el campo de operacin del sistema que
implantemos. For facilidad y pot- ser tan crmunes, optamos por una
PC XT . Cabe sealar que utilizamoc, TURBO-C para hacer las
pri>gr-am;.E en "C".
I J
Despus de elegir el lenguaje y el computador nos enfrentamos con
otros problemas.
A diferencia de otros lenguajes de alto nivel "C" no posee
funciones de graficacin, por lo tanto tuvimos que estudiar la
forma de hacer dichas funciones.
Teniamos dos opciones para hacer las funciones de graficacin:
1. Hacerlas en lenguaje ensamblador.
2. Hacer las funciones en "C" mediante interrupciones.
i
Y a que tenamos estas opciones decidimos estudiar el tema de
interrupciones para poder hacer las funciones.
INTERRUPCIONES PC
Existen tres formas de hacer interrupciones, \
1.- La que seneran los circuitos de \ l a computadora en
respuesta a algGn evento como el oprimir alguna tecla (st as
interrupciones se manejan por medio del "interrupt controller").
2.- La interrupcin que genera el C W , debido a algn
resultado inusual, como la divisih por cero.
3. - Y l as interrupciones que se generan deliberadamente por
programas, mediante invocaciones a la RAM 6 RON, est as
interrupciones suelen llamarse "Caftware interrupts", y en la PC
son parte de ROM- BI OSy DOS service,
Para hacer las funciones de graficacin utilizahos entonces las
interrupciones por software.
Turbo C, tiene l a funcin int86 que genera una interrupcin, 5610
hay que especificar dicha interrupcin.
15
-.
4
I
I
6
r
r
woo. A. DEFINICIONES,
Flsumimos que la'imagen dada es una matriz de tamao 2" X 2n. Cada
elemento de la matriz representa un pixel que tiene el valor de 1
d O (NEGRO o BLCSNCO). El Quadtree e5 una aproximaci6n a la imagen
representada, basado en una subdivisin sucesiva de cuadrantes. Se
repite la subdivisin del arreglo en cuadrantes, subcuadrantes,
hasta llegar a bloques, que consisten de 1's o O ' s .
Este proceso es representado por un rbol de grado 4, en el cual
la raz es la matriq completa.. Los 4 hijos de l a r a f z representan
los cuadrantes, y los nodos terminales corresponden a aquellos
elementos de la matriz para los cuales ya no es necesario hacer
subdivisiones.
Ejemplo: Tenemos una imagen (figura 7-11, que representamos en una
matriz d e 2* x 2' (figura 7-21, la figura 7-8 es una
descomposicin en bloques de la regin en la figura 7-2. La
figura 7-4 es el Quadtree resultante.
Los 1's de la figura 7-1 muestran el inberior d e la imagen
O's la parte de afuera de la imagen.
En l a figura 7-4 la raiz del rbol es l a m triz. En general
nodos cuadrados (NEGROS y BLANCOS) representan bloques que son 1 ' s
O O's, a estos nodos les llamamos TERMINCILEC y los nodos
semicircularea les llamamos INTERNOS.
y
los
\
1 1 os
C
17
" .--I-
*
1 1 1 0
0 1 1 1
0 0 - 1 o
O 0 1 0
I
FI GURA WOO4
IMAGEN
FI GURA WOO-OO
REPRESENTACION DE LA
iMAGEN EN UNA MATRIZ
A
w
.
N
E
S
FI GURCI WOO-000
REPRESENTAUON EN BLOQUES
B
FI GURA wflo-ov
QUADTREE
Q
18
Los nodos que son internos tienen 6 campos; de informacint uno
para almacenar l a direccin del padre, otro que i denti f i ca a este
nodo ( I NTERNO) y cuatro apuntadores a io5 hi j os. .
Los nodos terminales tienen dos campos: un apuntador al padre y
otro para- el ti po de nodo de que se trata (BLANCO o NEGRO).
Los cuatro hi j os de un nodo i nterno se etiquetan de la siguiente
manerat
NW - .Noroeste
NE - Noreste
SW - Suroeste
SE - Sureste
i
N
W
S
.-
E
S i un nodo es $e tamao 2n X an, es deci r, corresponde- a una
cada hi j o ser de 2
regin de tamano 2" X 2" pixeles en la imagen, e1 tamano de ,
n-i 2n- S.
L
19
VO0.B. GENERACION DE UN ARBOL CUATERNARIO
.
- Hanan Samet propone l a estructura de un nodo cualqui-era (terminal
o interno) como un regi stro de b campos: Uno para almacenar l a
direccin del padre, otro para i denti fi car e l ti po de nodo de que
se trate (blanco, negro o interno) y l os cuatro restantes son
apuntadores a sus hijos.
I
1
T
F I (3URA VUU -V
Estructura de un nodo para Quadtree
E l algoritmo de construccin de un Quadtree xamina cada pi xel de
l a ma t r i z una sola vez de maner.an6loga a l recorri do posteri or
de un Arbol, Por ejemplo para tina matriz de 2 x 2'se muestra en
J la fi gura VD-VO e l orden en que son registrados l os pixeles. S i n
embargo un nodo es creado cuando es maximo, s deci r cuando ya no
puede parti ci par en un "merge". Un "merge" ocurre cuando l os 4
h i j o s de un nodo son todos negros o blancos.
2
a
c
FIGURA WOO-VO
Orden en que son registrados l os pi xel es
20
. . . . . -. . .
. .
i , .
.
Cuando un cuadrante lo forman 4 pixeles del mi s mo color (NEGRO o
BLANCO) el nodo resultante en el Quadtree no tendr hijos que
apunten a NIL, simplemente un apuntador a su padre (si este lo
tiene) y el tipo de nodo que es. Es decir, no se generarn 4 nodos
del mismo tipo 5610 se crear un solo nodo que represente a los
pixeles. Por ejemplo, en l a Figura los pixeles 9 , 10, 11 y 12 se
reducen a solo un nodo, esto se ve claramente en la representacin
del Quadtree resultante (figura 7-41 .
El procedimento principal es 1.lamado QUADTREE y es invocado con
el valor del tamafo de la i ma g e n , por ejemplo n para una matriz de
2" x 2".
Hacemos uso d e un apuntador a una estructura llamada pair que es
un registro con dos campos: un apuntador a un nodo llamado apunta
y otro para el tipo de un nodo ( I NTERNO, NEGRO o BLANCO).
El proceso de construccin del rbol es ejecutado por la funcin
Construye que examina recursivamente todos los pixeles.
\
Cuando se crea un nodo interna Q en Construye, se almacena en
4 Apunt aCpai r- 3 la direccin de a
,
&hora bien IIPO-NODOCpair3 tiene el tipo correspondiente al nodo
generado por Const ruye.
Si Construye encuentra un nodo NEGRO o CINCO el campo que apunta
de pai r se lo asigna a NIL.
Cuando l a funcin Construye termina de r correr la matriz, si
encontr un nodo terminal l a +uncin QUADTREE crea un nodo de
este tipo y dev-l ve un apuntador a este.
Independentemente del tipo de nodo que sea. se le asigna al campo
PADRE el valor de NIL en QUADTREE.
Bt
! i
_-
21
PSEUDOCODIGO
Func QUfiDTREE 4 ni vel )
comienza
P <- construye t nivel, 2". 2")
si TIPONODO (PI = I NTERNO ent onces
comienza
padre (P> <- NI L
QUCIDTREE <- P
termina
comienza
otro
Q <- DISPO
TIPO-NODO t Q) <- TIPONODO (PI
par a i <- NWhasta SE h a
hi j o( I ) ( P) <- NI L
QUADTREE <-
termina i
termina
.
.
3
c
22
1
SALIDAS DEL M-GORITMO
La f unci on devuel ve un apunt ador del t i p o pa i r
I
Func Const r uye ( n i v , x, y) .
comi enza
si ( n i v =O)
ent onces Const r uye <- ( ( c ol or (ACx,yJ, NIL>)
o t r o
comienza
n
n i v <- n i v -1
PCNWI <- Const r uye ( n i v , ~ - 2 , ~ y-2" 1
PCNE3 <- Const r uye n i v , x-2 , x 1
P C S WI C- Const r uye ( ni v , x, y-2 )
PESE3 <- Const r uye 4 n i v , x, y 1
si (TIPONODO (PCNWI <> INTERNO and
TIPONODO ( P CNW3 =TIPO-NODO(PCNE3) =
TIPONODO (PCCWI =TIFO~NODO(PCSE3) 1
ent onces
o t r o
Const r uye <-- PCNWI
corn i en ra
Q <- DISFO
par a i <- NW hasta SW hat
si TIPONODO( P E i 3 ) = INTERNO ent onces
corn i en z a
HI J Ot i ) (9) <- APUNTCS ( PCi I )
P h D E (APUN+?A<PCiJ) <- Q
\
\
-- t er mi na
o t r o
com enza \
R <- DISPO
TIPO-NODO<R) C- TIPONODO ( P f i l )
par a J <- NW has t a SE haz
PADRE R) <- Q
HIJO ( j > ( R) <- NI L
-- t er mi na
TIPONODO C Q) <- INTERNO
Const r uye <- ((INTERNO, Q>>
t er mi na
t er mi na
termina
23
VO0.C. MODIFICACIONES A LA ESfRUCTURA DE DATOS
Ya que en las hojas terminales los apuntadores de los hijos tienen
el v al or de NIL decidimos manejar dos estruclxwas diferentes, por
razones d e espacio: una para io5 nodos internos y - o t r a para los
terminal es.
b
T
I
Tipo de nodo
FIGURA WOO-WOO
Estructura tipo padre
.- F-w Ti p o de nodo
F 1:GURA woo -woo0
Estructura tipo hijo
Con esta modificacin hacemos un ahorro de memoria que se
desperdicia con la estructura anterior. 'Ahora bien, cuando
Construye crea un nodo interno el campo APUNTACPAIR) almacena la
direccin del nodo tipo HIJO en pair ya que este es un apuntador.
24
I-,
Despus de esto, QUFTREE sbl o tiene' que examinar el c :PO
tipo-nodo en pai r para devolver l a direccin correcta; es decir,
si CONSTRUYE creo un nodo interno, QUADTREE regresar 1 mo
resultado PADREC pai r) y en otro caso regresara simplemente pa .
Usamos la estructura de tipo HIJO para pai r
.
Pi-esentamos ahora los algoritmos modificado.
PSEUDOCODIGO
Func QUADTREE ( nivel
corn i en za
P <- Canst r uye t nivel, 2", 2")
si TIPONODO ( pair : = INTERNO entonces
corn i en za
PADRE (FADRE (pair)) <- NI L
QUCIDTREE <- PADRE (pair)
t e r m i n a
comienza
ot r o
FADRE (pair) <- NXL
QUADTREE <- pair
termina
termina
.
\
Las llamadas a DISPO para Construye se sustihyen po r :
1. Creafnterno- Crea una estructura tipo PADRE y devuelve un
apuntador a esta.
L
2. Crea-hoja- Crea una estructura tipo HI J O y un apuntador a esta.
25
L
PCEUDOCODIGO j- ,
.
Func Construye (ni v, x , y)
comienza
si (niv =O) entoncerr
comenza
aux <- Crea-hoja0
TIPONODO (dux) 4:- matrizCxlCy3
PADRE(aux1 <- NIL
Construye <- dux
termina
com ien za
o t t'0
ni v <- ni v -1
PCNWI <- Construye ( ni v, x-2,' y-2" 1
PCNEI <- Construye 4 ni v, x-2 1
Pcsw3 <- Construye ( ni v, x , y-2'
PCSEI <- Construye t ni v, x , y 1
fi (TIPONODO (PCNWI 0 INTERNO and
n
TIPONODO (PCNWI =TIPONODO<PCNEl) =
TIPONODO (PCSWJ =TIPO-NODO(PCSE3) 1
entonces
otro
Construye <-- PCNWI
comienza
Q C- Crea-interno
para i <- NW hasta CW
comienza
si PADHE( PAREJACi.3) <> NIL entonces
\
HXJO(i)(Q) <- RADRE (PCiI)
.PADRE (PCiJ) <- Q
termina
comienza
--
otro
HJJO(I)(Q) <- PCII
PADRE (HIJO(1) (Q) 1 <- Q
termina
TIPONODO (Q1 <- INTERNO
au x <- Crea-interno
TIPONODO(aux) <- INTERNO
PADRE(2iux) <- Q
Construye <- a u x
termina
termina
termina
26
82r i 2g
i _
WOO. C. 1 . ANALI SI S DEL ALGORITMO CONSTRUYE
.
El hacer el analsis de un algoritmo, significa'.medir la cantidad
de recursos que necesita el algcritmo para resolver un problema. A
esto comunmente se le conoce como funcin complejida.
La funci6n complejdad puede ser de dos tipos: espacial si lo que
se mide es la cantidad de memoria requerida por el algoritmo para
dar solucin al problema o temporal si se mide el tiempo que
necesita el algori'tmo para resolver el probelma.
Todas estas medidas tiene como aibjetivo hacer un uso eficiente de
los recut*sos de la mquina, coma) son: la memoria y el tiempo del
procesador.
Para el clculo de la complejida temporal y espacial del algoritmo
Construye se divide el problema en 3 casos:
1. Mejor. De las 'definiciones que se dieron para generar un
quadtree, dada una imagen de 2n x 2n, se puede apreciar
que si la imagen es toda NEGRA o toda BLANCA solo se crea
un nodo, l a raz, con la informacin del color d e la
imagen. (Figura WOO- OX)
2. Medio. Depende de la regin que ocupe la imagen, ya que
como vimos en todos los; ejemplos anteriores, se puede
generar un arbol diferente por cada uno y por ello el
espacio que ocupan es diferente paba cada figura.
\
3. Peor. Siguiendo la misma definicin de generacin de un
rbol para una imagen dada de 2" x 2n, si la imagen es,
por ejemplo, un pixel NEGRO seguido de uno BLANCO. El
rbol generadoas forzosamente aquel en que todos sus
nodos terminales representan un pixel. (Figura WOO- 8 ) .
27
.
IMAGEN
W
\
',
1
REPRESENTAClON DE LA
IMAOEN EN UNA MATRIZ
A
m
N
E
QUADTREE
FGURA woo - 02/1
REPRESENTACION EN BLOQUES
-
28
.
f
IMAOW
N
REPRESENTACION DE LA
IMAOEN EN UNA MATRIZ
A
S
REPRESENTACION EN BLOQUES
' .
OUADTREE
FI GURA v00-W
29
COMPLEJI DAD ESPACf AL
.
Calculo de la complejidad espacial del atgoritmo Coristruye.
Mejor casot solo se necesita espacio para el nodo generado
entonces la complejidad es:
t
Peor caso:
de nodos-requerido por nivel es 4n.
para el arbol generado en la figura WOO - X el nmero
Est0 (-15:
NIVEL NODOS
O
2
k
' 1
0
4"
4'
42
donde 4L es igual al nmero t o t a l de pixelears, esto es
4k =2" x Zn *\
nota: de esta informacin 5e sabe que l a altu* del rbol es k.
La cantidad de espacio requerido es la suma de todos los nodos
en
el rbol cuaternario, por lo tantor ._
i=o
' C
2tn+i>
De aqu que la complejidad espacial es oC2
3 en el peor caso.
.
.
COMPLEJIDAD TEMPORAL
.
Para el clculo de la complejidad temporal, dado que es variable
si se hace en f or ma experimental, entonces se recurre a contar el
nmero de operaciones que se necesitan para resolver el problema.
Se debe elegir aquella operacibn que se realize en la mayor parte
del algoritmo. Para nuestro caso, se elgib la operacin asignacin
para los nodos del rbol.
Peor caso8
Siguiendo el algori.tmo Construye (pag.26) el caso base se
presenta cuando ni vel =O. Esta es cuando solo hay un pixel y en
este nivel se realizan 3 operaciones de asignacin, de donder
F C l > = 3
Y si el nivel no es igual a cero el algoritmo sigue el recorrido
recursivo. De regreso de la rec:ursividad se hace la pregunta para
saber si los tipos de nodos son iguyles. Pero como estamos
analizando el peor caso, esta c:ondicin n G c a se cumple. Por lo
tanto realiza 6 operaciones multplicadas cuatro veces (total
24 operaciones) que se ejecuta la
FC 2f n 3 4 F ( 'T) + 24
) + 24
2lJ-4
- 2 * F ( 2
Del anlisis anterior se obtiene la ecuacin recurrente.
C
FC 2= > - 2' F ( ?lu-'* ) +24
31
." L I
22i FC p - r >. =2 2i+2
F ( 2" YN- t i - 2 ) +22i 24
24
Zn+Z
22n+2 FC 4 =2Zn+4 3 + 2
3
2n+4
24 +2
Zi+2
FC SZn > = 24 +2' 24 + ...+ 2
n
+ s ~ ~ + ~ 3 + 24
2k+2
= E 2 4 2
k=o
n
k=O
* zrz2 2k+2 +SZn+4 3 +24 donde
22 - 1
zzk+' a 2" 2' p 22k I 22<n+*)
por lo t ant o la complejidad temporal en\el peor caso es:
oc SZn+*>
32
-y..-
*
W
G
,
i
WOO. D. CALCULO DE PROP1 EDADES GEOPfE TRI CAS DE I MAGENES
REPRFSENTADAS POR (11 1AL)TREES
La r e p r e s e n t a c i n d e f i g u r a s 12s un a s p e c t o i mp o r t a n t e de
p r o c e s a mi e nt o de i magenes. Es t i l p a r a t e n e r una &p r e s e n t a c i n
que p e r mi t a un c l c u l o f c i l d e c a t - a c t e r i s t i c a s y d i f e r e n c i a s de
f i g u r as .
A c o n t i n ua c i n pr e s e nt a mo s los a l g o r i t mo s d e uni n, i n t e r s e c c i n ,
compl ement o, rea y el c e n t r o i d e i Je un Quadt r ee.
Suponemos q ue l a i magen es una ma t r i z d e 2"X 2" d e p unt o s b l a n c o s
y ne gr os . La r e p r e s e n t a c i n ( o e s t r u c t u r a ) Qua d t r e e d e t a l i magen
se o b t i e n e por d i v i s i o n e s s u c e s i v a s e n c ua dr a nt e s . E l no do r a i r
d e l &bol r e p r e s e n t a la i magen c ompl e t a. Si ste n o es b l a n c o o
ne g r o , se d i v i d e e n sus c u a t r o c uadr ant e s . Cada nodo q u e n o
r e p r e s e n t e par t e d e l a i magen se s u b d i v i d e e n s u s c u a t r o
c uadr ant e s . E l p r o c e s o t e r mi n a ha<st a q ue se v i s i t a n las hoj as
t e r mi na 1 es.
33
-
8
Wall. D.1. AREA.
.
.
Es t e algoritmo encuentra el rea de una imagen vepresentada p o r un
Quad t re@.
E l r ea se define como el total de pi xel es col or NEGRO en l a
imagen.
ENTRADAS AL QLGURI TMO:
i) Un apuntador a l a r a z del Quadtree.
ii) Un ndmero n , : que denota el logaritmo del dimetr3 de la
imagen, es deci r, l a imagen es de tamao 2 X 2 .
FSEUDOCODI GO
\ c o m i en za
Func Area( rai z, n) \
\
area-negra <: - O
si TI PO- NODO( rai n) = I NTERN@entonces
para i <- NW hasta SE haz
at-ea-negra .<- area-negra + fired( HI J O() ( r ai z ) ,
L n - 1 )
o t t-o
si TI PONC)DO( RAI Z) = NEGRO e n t o n m
area-negra -::- area-negra + 2
A r e a .<- a r ea-n eg r a
termina
Se puede ver fcilmente que el algor-itmo vi s i ta cada hoj a de color
NEGRO una y solo una vez, obteniendo as el rea cor t -ect a.
c-
E- 1
r
--
u
.
.
WOO, E. OPERACIONES DE CONJUKTOS
A menudo es decabl e comparar dos regi ones de una imagen y
encontrar qu hay de comn entre e l l a s . Esto iniplica l a
interseccin de dos imageries y detreminat- l os puntos comunes sntr-e
estas. Otras opet-aciones de conjunto que son Gt i l es son l a unin y
e l complemento.
Los algoritmos para estas operaciones implican un recorri do de l os
rbol es. Si n embargo, los algoritmos de interseccibn y uni n, en
algunos casos, no recorren completamente l os r-boles.
i
VOO. E, 1 * COMPLEMENiO
La construcci6n de el complemento de una imagen implica
intercambiarlos pi xel es NEGROS por ELfiNCOS y vi ceversa.
Es una operacibn simple que no cambia completamente l a estructura
del rbol .
\
ENTRADBS BL ALGORITMO:
\
1 apuntador- a id r a z de un r bol .
PSEUDOCODIGO
Pr oc Complemento( raiz)
corn ien na
L
51 T I PONOD O( r ai z) =: INTERNO entonces
Complemental( HI JO( i ) ( r-ai=))
p ar a i <- NW h as t a SE h 2
otro
si TIPONODO( r a z ) = NEGRO
entonces TIPONODO( rai n) <- ELbNCO
o t r o TiPO-NDO( r al z) .:;- NEGRO
t e r-m 1 n a
b
----
En id Fi g. A de l anexo 5e presenta un ejemplo de esta operacin.
.
VEO . E. 2. I NTERSECCI ON
E s t e p r o c e d i mi e nt o . e nc ue nt r a el ' Y ' l gi co de dos i mag e ne s
r e p r e s e n t a d a s po r Quadt r e e s . ste a l g o r i t mo r ec or r er los rboles
en p a r a l e l o .
A c o n t i n u a c i 6 n pr e s e nt a mo s 105 cosos que se p r e s e nt a n ent t - e dos
nodos:
i ! Cuando el t i p o d e no do de el pri mer r b o l es NEGRO, e n el
r b o l d e i n t e r s e c c i n se i n s e r t a r el no do c o r r e s p o n d i e n t e
d e l s e g undo r bol i nde pe ndi e nt e me nt e d e l t i p o d e este.
i i ) Si el t i p o d e no do d e l s e g undo rbol es NEGRO, e n el
r b o l d e i n t e r s e c c i t n sc i nsert at - - & e1 no do c o r r e s p o n d i e n t e
del p r i me r r b o l i nde pe ndi e nt e me nt e d e l t i p o de este.
i i i ) S i ambos r b o l e s t i e n e n no do s I NTERNOS e n s u5
c o r r e s p o n d i e n t e s p o s i c i o n e s , los hijos d e estos s o n
exami nados r e c u r s i v a me n t e usando el mismo pt-oceso.
ENTRADAS AL ALGRITMO:
Los a punt a do r e s a l a r a z de cada
SALI DA DEL ALGORI TMO:
Un apunt ado r a l a r a f t d e l a i n t e k e c c i n d e los d o s r b o l e s .
FCEUDOCODIGO
Func Interseccin( no d o l , inodo2)
corn i en za
si TI PONODO( nodo1) = NEGRO y TI PONODO( nodo2) = ELf i NCO
e n t o n c e s I n t e r s e c c i n c- Co pi a $ nado21
otro
SA ' Ti PO- i d ODO( n o d c Q) = NEGRO y TI PONODO( nodol ) = BLANCO
e n t o n c e s I nterseccj n (.I- Co p i a ( n o d o l )
i n t e r c DI SPO
p a r a i <:- NW tt;csta SE h a
cmi en-
HI J Oi i ) (i nter- ) <.:- I n t ~ r s e c c i 6 n ( HI J O( i i i nodol i ,
HI JO ( i i ( nodoL) )
FGDHE( HI J O( i ) ( i n t e r ) ) .<- i n t e r
t e r- m i n a
l n t et - s ec c in ..'- inter
termi no.
.
Ej empl o: Tenemos una imagen ( f i g u r a WOO-OX) que representamos en
una matriz de 2 ' x 2' ( f i g u r a WOO-W), l a f i g u r a WOO-MI es una
f i g u r a WOO-XOO es el Quadtree t-esul tante.
descomposicic5n en bl oques de l a regi n e n l a f i g u r a woo-x. La
F I EiURA WOO -U#
IMAGEN
\
N
FI GURA WOO-X
REPRESENTACION DE LA
IMAGEN EN UNA MATRIZ
A
W E
FI GURA WOO-m
REPRESENTACION EN BLOQUES
En este ej empl o queremos hacer l a i nt er s ecci 6n L S l a f i g u r a
anterior y l a f i g u r a VOO-XOOO, para mayor c l a r i d a d presentamos
nuevamente el At-bol generado para esta f i g u r a:
1 1 1 1
0 1 1 1
1 0 1 0
1 1 1 0
1
I
.REPRESENTACION DE LA
WAOEN EN UNA MATRIZ
A
W E
S
REPRESENTACION EN 8LOOUES
Imagen produci da por la Intersecci on:
IMAGEN
W
REPRESENTACION DE LA
IMAOEN EN UNA MATRIZ
A
.
N
S
RE L $?ESENTACION EN BLOQUES
r .. .
-t ' I
I
. .
En la Fi g . B d e l a ne x o se p r e s e n t a un e j e mp l o d e esta o p e r a c i o n.
.
Copia:
E s t e al gor i t mo r e c i b e como e n t r a d a al apunt ado r a un no do t i p o
hi j o o padr e . Co p i a el no do r e c i b i d o en otro que se crea a l
comeniar el a l g o r i t mo .
R c o n t i n u a c i n pr e s e nt a mo s e1 p s e ud o c d i g o d e l al gor i t mo o r - i g i na l .
Func Co p i a ( nodo)
c o m i e n ;I*
nue v o ci DICPO
p a r a i <- NW h a s t a SE haz
si ( HI J Ot i ) ( no do ) ) =N i l
e n t o n c e ? ( HI JO ( i 1 ( nue v o) ) <- N i 1
o t t-o
-- c o mi e nz a
( HI J O( i ) ( nue v o ) ) <- Co p i ( HI J O( i ) ( nodo) )
FfiDRE ( HI JO ( i ) ( nue v o ) ) ..;- nue v o
te r n i 1 na
--
term i n a
--
a
\
dado q ue p a r a l a i mpl e me nt ac i n u t i l i z a mo dos t i p o s de nodos, l a
l l amada a DICFO l a s u s t i t u i mo s por el s i g u ' e n t e c d i g o .
SATI PONODO ( nodo) = I NTERNO
e n t o n c e s nue v o <- C; rea- i nt erno
o t r-o nue v o <- Cr-ea-hoja
T I P ONODO( nue v o) <- TI F' ONODO( nodo)
Ya que los; no do s q ue n o s o n hojas n o t i e n e n a punt a do r e s a hijos,
l a s a s i g n a c i o n e s a N i l las omitimos.
Fr e s e nt amo s a ho r a el ps e udo c bdi g o d e l a l g o r i t mo resultante:
Func Co p i a ( no do ) i
com i e n z a
- si TI PONODOi nodoi = INTERNO
e n t o n c e s nue v o 1- Cr e a - i nt e r no
o t PO nue v o <- Crea-hoja
TIPO-NODO( nue v o ) <'- TIPO-NODO( no do )
si TI FO- NODO( nue v o) = I NTERNO e n t o n c e s
p a r a i <I- NW hasta. SE p s
c o mi e nz a
( HI J:O ( i ) ( nue v o ) i
PADF:E ( HI J O ( i i ( nue v o) i .:.:- nue v o
-:I- Copia ( HI JO ( i i i no do ) i
t e r m i n a
C OP ~ a ..I - nb-ievo
t er-rn 1 n a
---
___. I_____-
8
.
VOO.E.3 UNION
E l al gori t mo de uni n es s i mi l a r a l d e ' i n t e r s e c c i n . Los r b o l e s
s o n r e c o r r i d o s e n p a r a l e l o , y las d e s i c i o n e s s o n hechas c ada vez
q ue c u a l q u i e r a d e 'los r e c o r r i do ! s busca una hoj a.
i ) Cuando se l o c a l i z a una h o j a NEGRA , es t a llega a ser el
s ub r b o l cor- r- espondi nt e e n el r b o l de uni bn.
i i ) Cuando se l o c a l i z a una h o j a BLANCA e n un r b o l , sta es
r e e mpl a z a da e n el rbol d e uni n, p o r el 5i l b3rbo1
c o r r e s p o n d i e n t e d e l s e g undo r b o l , s i n i mp o r t a r que t i p o
de no d o sea ste.
\
ENTRADAS AL ALGORTMO:
Los a p unt a d o r e s a, la r a z de c a da rbol .
SALI DA DL ALGORITMO:
Un a punt a do r a l a r- afz d e : l a uni dn d e estos dos r b o l e s .
\
FSEUDOCODIGO
a
Func Uni n( n o d o i , nodo21
o m 1 e n z a
SA TIPO-NODO( nodoL) E- NEGRO v TI PONODO( n o d o l ) = BLANCO
otro
e n t o n c e s Uni n %; - Copia( nodo21
5 . TIFO-NODO(nodo2) = BLANCO v TI PONODO( nodo1) = NEGRO
._
Ent o nc e s Uni n - Co p i a ( n o d o l )
une e DISPO
p a r a i Z.- NW h a s t a SE hr
c o mi e nz a
(HIJO(i) ( une ) ) 5- Uni n( HI J O( i ) ( no d o l ) , HI J O( i ) ( nodo=)
PADRE( HI JO( i ) ( une) 1 <- une
t e r m i n a
Uni n <- une
-__I_
t e r m i fi a
A c o n t i n u a c i n pr e s e nt a mo s un e j e mp l o p a r a d o s A r b o l e s y el r b o l
r e s u l t a n t e ae la uni n de est os. l os d o s r b o l e s s e r n el g e ne r a d o
por l a f i g u r a VOO-MOW y el g e ne r a d o p o r l a f i g u r a VOO-XV. Fat- a
mayor - claridad, dar e mo s nuevsment e l a r e p r e s e n t a c i n d e l At-bol de
cada f i gur a.
.
i
FI GURA won-mv
IMAGEN
REPRECENTACI ON DE L A
IMAGEN EN UNA MATRIZ
N
A
(QUADTREE
8
.
REPRESENTACION DE LA
IMAGEN EN UNA MATRIZ
A
S
E
REPRESENTACION EN BLOQUES
QUADTREE
-. .. ..,.". . . ... .. ~
1 .
I
1
I
1
1 1 1 1
1 1 1 1
1 0 1 0
1 1 1 1
I
J
I
9 -
. .
,
.
F I GURA VD0 -XWO
IMAGEN
REPRESENTACION DE LA
IMAOEN EN UNA MATRIZ
A
N
E
REPRESENTACION EN BLOQUES
c
.
Una vez que construimos el al gori tmo de unin- y complemento
hacemos uso de l as si gui ente tautol ogf a para construi r l a
operacion l gi ca Si - entonces:
I
I
I
S i -> entonces
( a - > # ) <-> i 7 a i +)
donde a y 9 son dos dr-bales cuaternari os.
PCEUDOCODIGO
fctnc Si ent onces (ar bol -1, arbol-2)
1
corn i en z a
te t-m i na
Si ent onces <- Union (complementoCarbo1-1) , ai-bol-2)
--
.
.
WOO, F, GIRAR UNA IMAGEN
Para p o d e r g i r a r una i magen es n e c e s a r i o l l e g a r . . as v a los nodaci
t e r mi n a l e s e i n t e c a mb i a r l o s conlo 5e mue s t r a e n la f i g u r a:
Hecho esto n o s regresamos a l n i v e l q n t e r i o r p a r a r e p e t i r el .
proceso p e r o a ho r a e n t r e no do s i n t e r n o s a s i s uc e s i v a me nt e h a s t a
l l e g a r a un n i v e l a n t e s d e la r a z .
9 \
a
PSEUDOCODIGO
Proc Gir&-9O__grados( n i v e l , r ai z )
c o mi e nz a
si TI PONODO( r a i z ) := INTERNO e n t o n c e s
corn i enza
par a i <- NW hai sta SE h a z
si TI PO- .ODO( HI J O( i ) ( r a i z ) ) = INTERNO e n t o n c e s
comiei=
n i v e l <- ni v e l - 1
Gi1-a-9O-qrados(~ n i v e l , HI J O( i ) ( r ai z ) )
t er - m i ina
---
t e mpl <..- Co p i a ( HIJO(NE) ( r a i z ) )
HI JO( NE) ( r a i z ) .:- Ca mb i a d e - l ug a r ( HI JO( NE) ( r a i z ) ,
HIJO(NW1 ( t - ai z ) )
HIJO(NW) ( r - ai z ) .<- Ca mb i a d e - l ug a r ( HIJO(NW) ( r a i z ) ,
HI J Ci(SW) ( r a i z ) i
t emp2 ::- Co p i a ( HI J O( CE) ( r a i z ) )
HI JO( SE) ( i - a i z ) <- Carnbia-de-iugar( HI J O( SE) ( r - a i z f ,
HIJO(SW) ( r a i r ) .:- Car nbi ade - l uqar ( ti I J O( SW) (raiz),
templ)
t emp2)
t i t - m 1 na
-__---
.
Como se u t i l i z a r o n dos t i p o s d e no do s par a los A r b o l e s c r e amos una
f unc i n Cambia-de-lugar que e n l a v a r i a b l e ' d e s t i n o ' al macena l a
d i r e c c i b n d e ' f ue nt e ' . S i los t i p o s d e los dos apunt ado r e s es
i g u a l s i mpl e me nt e .se hace una a s i g n a c i n nor mal , e n otro c a s o se
ha c e u s o del ' c a s t ' que pr opor c : i ona "C".
Como ya hemos v i s t o e s t a t cni c: a consi der - a que l a s i mgenes e s t a n
al macenadas e n una ma t r i z cuadr ada, donde el tamao de st a, es
una p o t e n c i a d e dos.
S i u t i l i z a mo s una matriz de, 128 x 128, c a r a c t e r e s p ar a al macenar
l a i magen el e s p a c i o r e q u e r i d o es d e 16K. Podemos apr ov ec har c ada
b y t e pa r a al macenar. e! v a l o r de un p i x e l (O o 1 ) e n un b i t , d e
e s t a manera al macenamos o c ho b i t s e n un c a r a c t e r . De esta f orma
solo utilizamos una ma t r i z d e 128 x 16, que ocupa 2K hac i e ndo no s
un a h o r r o de 14K en memori a.
Par a po de r mapear el v a l o r d e un p i x e l a l a p o s i c i n que l e
c o r r e s po nde en 1 ma t r i z u t i l i z a mo s l a o p e r a c i n mdul o y los
ope r ad or es ' B i t - w i ce que p rup o r c i o n a
I' C 'I .
L
I
C J
s-1 Entradas:
*
CARTA IPO 1
~~~~~r a l rbol generado-
\ a
Sistema: Quadtree Preparada por: Avia Cr uz
Cdnchez Cerezo
Mdulo: Creacin de un Arbol Fechas May o 1988
cuaternar io.
Nombre: Quad-tree
Invocada por: proceso llamadas o Invocacionest
Construye ( carta IPO 2)
Potencia ( carta IPO 3 )
Var i abler l ocal es
pot - almacena el val or de . pi vel
pa i r - apuntador a l rbol generado.
Nota:
.
I
.
Como nos dimos cuenta los algoritmos de esta representacin son
altamente recursivos, pero la estructura para almacenar y manejar
las imagenes, es muy fcil de generar.
A Partir de l as operaciones: Interseccin, Unin y Complemento se
pueden desarrollar nuevas rutina:;, como 10 fue el caso de Si --
entonces, que pueden ser muy interesantes dependiendo de la
aplicacin.
Tomando en cuenta el anlisis de complejidad espacial para el
algoritmo de generaci&n d e rboles, recomendamos utilizar una
mquina con ma5 capacidad de memoria que una PC XT, ya que se
requiere espacio para as matrices, de las cuales se generan los
Quad t rees.
8
i
49
I
M. iBUtBllO6Mj(RAFOA
.
A
LIBROS CONSULTADOS:
Gehani, Narain. CIdvanced Cr F'ood for the educated pafete.
AT&+ Bell Laboratories, E.U., 1984.
Holub I., Clllen. The c Companion. Prentice Hall, E.U., 1987.
Kernighan, Brian y Dennis tl. Ritchie. 1lenquaje d p proqamacion
c, Prentice Hall. Me,tico, 1985
Norton, Peter. Programmer's guide To the IBM-PC,
Microsoft Presa, .U,, 1985,
Schwaderer, David, c wizard's proqramminq reference.
John Wiley b Sons, Inc., E.U., 1985.
Tucker B., Allen. Lenciuajes Programacion, Mc. Graw Hill, 1982
Whirth, Niklaus. CSlisorithms 5 data structures 2 proqrams.
Prentice-Hall,' E.U., 1976.
William S . , Davis. Svstems -7alysis Addison Wesley,
E.U., 1983.
c
ARTICULOS CONSLTADOS
Ballart H. Dana. "Strip trees: A hierarchical representation
for curves", Comm. ACM, mayo - 1981, pp. 310-321
Samet, Hanan. "Region representation: Quadtrees from Binary
Arrays"* Computer Graphics and Image Wocessing", 13:
1980, pp. 88-94 L
, "The Quadtree and Related Hierarchical Data Structu-
res", Computyng Surveys, junio - 1984, pp. 187-247
Shenier, Mi c h a e l , "Calculations of Gometric Properties using
Quadt r ees" , Computeir Graphics and Image Processing,
1 6 : 1981, pp. 296-:302
Yau, Mann-May y Shrihari N., Sargur. "A Hierarchical Data
Structure for Multidimenson Digital Image@', Comm ACM,
julio - 1983, 115-130
. a
.
OTROS ARTICULOS DE INTERES
Chien C.H. y Aggarwal J., K:. "A Normalized Quadtree represen-
tation", Computer Graphlcs and Image Processing', 26%
1984, pp 331-346
D.J., Clbel. " A B-Tree Structure for Large Quadtrees', Gmpu-
ter Vision, Graphics and Imag Processing", 27 : 1984,
pp. 19-31
Samet, Hanan. " An Algrithnr for Converting rasters to quad-
trees", IkEE transactions n patter analysis and ma-
quine inteligence, vol. pains-3, l : 1981
, "Connected Component Labeling Using Quadtrees", Jour-
nal of the Associat;ion for Computing Machinery, Vol.
28, 3 : 1981, pp. 487-501
, "Deletion en Two-Di.mensiona1 Quadtrees@', Comm. ACM,
diciembre - 1980, pp. 705-710 .
ocessing, 18 : 1982,
, "Neighbor Finding Techniques Image by Quadtrees',
Computer Graphics and Image
pp. 37-57
, "Region Representation: Bundary Codes From Quadtrees"
Comm. ACM, marzo 1980, pp. 171-179
51
" . . .-
.
.-.._ -.-. ,
*
1
IMfiCEN 1
J
IMfiCEN 2
RREW 228
4.
' i
RESULTADOS I
I
I

You might also like