Una Solución al Problema de la

Anuncio
Centro de Investigación y Estudios
Avanzados.
Departam ento de Ingeniería
Eléctrica.
*
ce t m de investísacisn y i i
ESTUDIOS AVANZADOS BEL
I. P. N.
B I B L I O T E C A
Sección de Computación
'n g e n ie r ia
Una solución al problema do la correspondencia en un
par estéreo utilizando descriptores de curvas.
Tesis que presenta Joaquín SALAS1 p ara obtener el grado de
M aestro en Ciencias eu la especialidad de Ingeniería
Eléctrica. Trabajo dirigido por el Dr. Sergio CHAPA.
México, D .F .. A gosto 1991.
b e c a r i o d e CONACYT.
e l e c t r ic a
GÍIITM DE INVESTIGACION Y fet
ESTUDIOS AVAN?t ()os S í l
I. P . N.
■
I B L I O T E C A
IN G E N IE R IA E L E C T R IC #
AGRADECIM IENTOS:
E ste tra b a jo es fru to d e un ac u erd o de colaboración científica e n tre las
escuelas E .N . S . T . d e B r e t a g n e en F ran c ia y C I N V E S T A V d e l I .P .N .
en M éxico.
F ra n cia . Q u iero agrad ec er a los profesores M . A lia n H I L L I O N , Jefe del
D e p a rta m e n to de M atém a tic as y S istem as d e C om unicación, y M .
J e a n -M a r c B O U C H E R , re sp o n sab le de mi estan c ia, p o r h a b e rm e
recibido ta n a m a b le m en te en su d e p a rta m e n to . A sí ta m b ié n , a los
profesores M . C h r is tia n R O U X . Jefe del G ru p o de T ra ta m ie n to
de Im ágenes, y M . G u y C A Z U G E L . quienes siem pre tu v ie ro n una
p a la b ra d e apoyo p ara este proyecto. Igua lm e n te , a M . J e a n - J o s é
J A C Q y M . J e a n -P a u l L A U R E N T . sin cuyo equipo y co n o c im ie n ­
tos técnicos, el proyecto no h u b ie ra pro g resad o com o lo hizo. F in a l­
m en te. q u iero agrace d er los alum nos y p ersonal de la E .N .S .T . de B re ­
tag n e . cuya am istad a lo largo de estos m eses ha sido u n a d e las e x p e ­
riencias m ás enriquecedoras que he tenido.
M é x ic o . E sta e s tan c ia y en general m is estu d io s de M ae stría han sido fu e rte ­
m en te apo y a d o s en C I N V E S T A V ..Q u iero ag rad ec er al profesor D r .
D a v id M U Ñ O Z . Jefe del D e p a rta m e n to d e Ingeniería E lé c tric a , y
a los señores D r . G u ille r m o M O R A L E S . Jefe de la Sección de
C o m p u ta c ió n , D r . J o s é L u is G O R D I L L O y D r . J u a n M a n u e l
I B A R R A . Jefe de la Sección d e C ontrol A u to m ático , p o r to d o su
apoyo p a r a la realización de e s te in terc am b io q u e m e h a p e rm itid o t r a ­
b a ja r en un lab o ra to rio del m ás a lto nivel. T am bién, a los profesores
D r a . A n a M a r ía M A R T I N E Z y D r . S e r g io C H A P A , m is a s ­
esores académ icos en M éxico, p o r to d a s sus conversaciones y consejos.
P or ú ltim o , a los alum nos de las Secciones de C o m p u ta ció n y C o n tro l
A u to m á tic o , quienes han p ro p icia d o un am b ie n te científico y h u m a n o
m uy rico, del cual m e siento orgulloso de form ar p arte .
DEDICATORIA:
,4 R a m ó n y Socorro, quienes hace m ucho tiem po m e en señaron que pocas
cosas son m á s valiosas que un poco de conocim iento.
A L en is y D aniel, qu ien e s m e han proporcionado un a m b ie n te fa m ilia r
pleno.
In tro d u cció n .
Las im ágenes son proyecciones tridim ensionales d e escenas trid im e n sio n a­
les. La re cu p erac ió n d e la inform ación d e p ro fu n d id a d es un p ro b lem a fu n ­
d a m e n ta l en ap licacio n es ta le s com o la navegación a u to m á tic a , la c a rto g ra fía
y la ro b ó tica . El o b je tiv o d e este tra b a jo es desc rib ir un m éto d o p a ra en c o n ­
tr a r la co rresp o n d e n cia e n tre los segm entos d e cu rv a de dos im ágenes u sando
téc n ic as de estereoscopia.
D adas dos im ágenes y el m odelo geo m é tric o d e las c á m a ra s , la ta re a de
la estereo sco p ia es e n c o n tra r los p u n to s , q u e c o rresp o n d e n en u n a y en o tr a
im agen, y señ alan u n p u n to único en la escena; d esp u és, to m a n d o en c u e n ta la
diferencia de los d e s p laz am ien to s de los p u n to s en las im ágenes ( disparidad) y
la posición de las cá m a ra s , la inform ación de p ro fu n d id a d p u ed e ser c a lcu lad a
m e d ian te u n a tran sfo rm ac ió n g eo m étrica.
En el L a b o ra to rio d e T ra ta m ie n to d e Im ágenes de la E .N .S .T . de B reta g n e
se t r a b a j a sobre p ro b lem a s relacionados con el an á lisis y p ro c esam ien to d e
im ágenes, en o casio n es d e sa rro llan d o investigación b ásica y en o tra s en co­
lab o ra ció n con e m p re sas d e la región con el fin d e ap lic a r e s ta tec n o lo g ía a
la solución de p ro b lem a s.
E s te tra b a jo se u b ic a d e n tro de un gra n pro y e cto d e an á lisis o cu la r que
tien e com o fin el d ia g n ó stico a u to m á tic o de en ferm e d ad es. En p a rtic u la r
los desarrollos de n u e s tro tr a b a jo serán utilizad o s p a r a la d e te rm in a ció n de
la c u rv a tu ra d e la su p erficie d e los ojos y o b serv ar si se pu ed e n o b te n e r
p a rá m e tro s re la tiv o s a defectos tales com o m io p ía o astig m atism o .
N u e stro p ro p ó sito es el diseño y co n stru c ció n d e un m odelo p a r a resolver
el p ro b le m a d e la c o rre sp o n d e n c ia b asa d o en té c n ic as d e estereo c o p ía . P ro ­
p o nem os u n alg o ritm o q u e u tiliz a d e sc rip to res de segm entos d e cu rv a com o
base p a r a re c u p e ra r la inform ación de p ro fu n d id a d . C reem os q u e la re p re ­
sentación de e s tru c tu ra s trid im e n sio n ales p re su p o n e la con stru c ció n de proce­
sos de in terp o lac ió n d e superficies, lo cual re q u ie re u n a solución al p ro b lem a
de la seg m en ta ció n d e o b je to s en la escena; p en sa m o s q u e é s te es un p ro b ­
lem a q u e m erece ate n ció n p o r derecho pro p io y p o r ello no hem os p ro p u e sto
u n a solución al p ro b le m a d e la re co n stru cc ió n trid im e n sio n al en este escrito.
El re p o rte se o rg a n iz a en c u a tro ca p ítu lo s y un apéndice:
C a p ítu lo
1.
Se p ro p o rc io n a un p a n o ra m a general d e la estereoscopia; se
cam r# 1 1
i n v e s t i d a c i ©n y
it
E ST U D I O S A V A N Z A 8 0 S S E L
i. P. N.
i l S L I O T E C A
’N G E N IE R 1A E L E C T R IC #
incluyen tem as y tra b a jo s previos im p o rtan tes.
C a p í t u l o 2. D esarrollam os los algoritm os necesarios p a ra la realización del
m odelo de propuesto.
C a p í t u l o 3. Se p re sen tan los re su lta d o s que obtuvim os al ex p e rim en tar con
el m odelo construido.
C a p í t u l o 4 . Señalam os algunas conclusiones y proponem os posibles m ejo­
ras al proyecto.
A p é n d ic e . E l tra b a jo com p u tac io n al es p re sen tad o y descrito.
Contenido
1
L a e s te re o v is ió n .
1.1
Definición del p ro b le m a ............................................................................
1.2
G e o m e tría e ste re o ........................................................................................
1.2.1 G e o m e tr ía s i m p l i f i c a d a ..............................................................
1.3
D e te c c ió n d e c o n t o r n o s ........................................................................................
1.4
1 .5
2
E l m o d e lo d e e s t e r e o s c o p i a p r o p u e s to .
2.1
2.2
2.3
2.4
2.5
3
T ra b ajo s p re v io s...........................................................................................
Inform alm ente: n u e stro a lg o ritm o .........................................................
*
1
3
?
9
^
16
17
In tro d u c c ió n .................................................................................................... ^
F iltro G ra d ie n te ............................................................................................ ^
A d e lgazam iento de lín eas.......................................................................... 20
E x tra cció n de co n to rn o s............................................................................. 22
2.4.1
D e te rm in ació n d e los segm entos de r e c ta ............................ 27
A lgoritm o de c o rre sp o n d e n c ia .................................................................. 28
2.5.1
P rim e ra e ta p a ................................................................................. 29
2.5.2
S eg u n d a e ta p a ................................................................................ 30
R e s u lta d o s e x p e rim e n ta le s .
33
3.1
La ta s a ............................................................................................................... 33
3.1.1
Im ágenes o rig in ales....................................................................... 33
3.1.2
Im ag en g ra d ie n te ........................................................................... 34
3.1.3
A d e lg a za m ien to de lín eas ........................................................... 35
3.1.4
E x tr a c c ió n d e c o n t o r n o s .............................................................. 35
3.1.5
A p a r e a m ie n to ................................................................................ 36
3.2 Las ra q u e ta s d e p in g -p o n g ......................................................................... 38
3.2.1
Im ágenes o rig in ales....................................................................... 38
iii
SMíTEfC' BE INVESTISACieN Y Pf
ESTUDIOS AVANZAB9S BU
!. P. N.
B I B L I O T E C A
I N G E N I E R I A E L E C T R I C '1
iv
C O N T E N ID O
3.3
4
3.2.2
Im agen g ra d ie n te ........................................................................... 38
3.2.3
A delgazam iento de lín eas........................................................... 3 9
3.2.4
E x tra cció n d e co n to rn o s............................................................. 41
3.2.5
A p a rea m ie n to .................................................................................. 42
El lab o ra to rio ................................................................................................ 45
3.3.1
Im ágenes originales. .....................................................................45
3.3.2
Im agen g ra d ie n te ............................................................................45
3.3.3
A delgazam iento d e lín eas............................................................47
3.3.4
E x tra cció n de co n to rn o s..............................................................47
3.3.5
A p a rea m ie n to .................................................................................. 51
C o n c lu s io n e s .
A L a p r o g r a m a c ió n d e l m o d e lo .
A .l
A lm acena im ag en .........................................................................................57
A .2 R ecu p e ra im ag en ..........................................................................................59
A .3 G ra d ie n te ........................................................................................................ 62
A .4 A delgazam iento de lín eas..........................................................................65
A .5 E xtracción de co n to rn o s............................................................................76
A . 6 C orre sp o n d en cia........................................................................................... 97
53
55
Capitulo 1
INGENIERIA ELECTRICA
La estereovisión.
1.1 D efin ición del p ro b lem a .
N u e stro s o jo s son el m odelo m ás pró x im o q u e ten e m o s p a ra explicar el p rin ­
cipio d e la estereoscopia. Sim plifiquem os e n o rm e m en te el m odelo y olvidé­
m onos p o r u n m o m ento de la en o rm e com p lejid ad d e funcionam iento d e los
ojos; tom ém oslos sim p le m e n te com o dos c a p to re s visuales con la ú n ica m isión
de tra n s fe rir im ágenes del m undo físico a n u e s tro cerebro. U n ojo es, en el
caso id ea l, fu n c io n a lm e n te d ep e n d ien te con re sp ecto al o tro p o r las siguientes
causas:
• A m bos ojos funcionan d u ra n te el m ism o p erío d o de tiem po; es decir,
n o rm a lm e n te se ab ren y cie rra n sim u ltá n e a m e n te , lo cual oca sio n a que
c a p te n los m ism os eventos.
• Los ejes focales de los ojos convergen en el p u n to d e interés; pero en
g en e ral, el p u n to de Ínteres se e n c u e n tra de ta l m a n e ra re tira d o que
p o d em o s co n sid erar a los ejes focales com o p rá c tic a m e n te paralelos.
• F ísic a m e n te , los ojos se e n c u e n tra n o rie n ta d o s en la m ism a dirección y
a la m ism a a ltu ra en su posición n o rm al.
• El e n fo q u e es el m ism o, id ea lm e n te , p a r a c a d a ojo.
C a d a o jo c a p ta u n a escena bidim ensional. El ce reb ro , m e d ian te un m ecanis­
m o que no hem os co m prendido del to d o , p ro c e sa am bas im ágenes y nos hace
1
2
C A P ÍT U L O 1. L A E S T E R E O V IS IÓ N .
p ercib ir la p ro fu n d id a d 1.
A h o ra b ien, u n siste m a de visión artificial cuyo fin fuera la inferencia de
pro fu n d id a d en u n a escena, d eb e ría c o n ta r con los siguientes com ponentes:
• Dos o m ás im ágenes, to m ad as p o r dos o m ás cám aras fijas o p o r u n a
cá m a ra d esplazada.
• U n proceso, llam ad o calibración, que dete rm in e :
— La posición d e las cám aras en el m o m ento de to m a r las im ágenes;
— La p ro fu n d id a d de un p u n to que nos sirva de referencia p a ra re la­
cionar n u e stra s m edidas con el m undo físico.
• U n s iste m a de inferencia que dad a s com o e n tra d a s el co n ju n to de im á­
genes y el m odelo geom étrico de las cá m ara s al m o m ento de to m a r las
im ágenes d ete rm in e la pro fu n d id a d de los p u n to s en la escena.
V arias técnicas del tip o cooperativo (v e r §1.4) h an sido estu d iad a s. E stas
in te n ta n re la cio n ar conocim iento referente al m ovim iento, la te x tu ra o el flujo
ó ptico con la estereoscopia. La integración de ta l ca n tid a d de d ato s co n sti­
tu y e un p ro b lem a m uy com plejo desde los p u n to s de v is ta de la a rq u ite c tu ra
co m p u tac io n al y los algoritm os requeridos.
P o r m edio d e la estereo c o p ía se in te n ta re p ro d u c ir el fun cio n am ien to del
s iste m a visual h u m an o en el sentido de que, d ad o un c o n ju n to de im ágenes de
u n a escena y el m odelo geom étrico d e las cá m ara s en el m om en to de to m a r las
im ágenes, el p ro p ó sito de la estereoscopia es e x tra e r la inform ación de p ro ­
fu n d id ad de la escena. E n la estereoscopia clásica, el p ro b lem a fu n d a m e n tal
consiste en en c o n tra r las proyecciones de u n a c a ra c te rís tic a en la esc en a en
las dos im ágenes (problem a de la correspondencia).
El arreglo g eom étrico m ás sim p le p a ra expe rim en tac ió n estereoscópica se
p re sen ta en la F ig. 1.3. Los planos im ágenes son coplanares y los ejes focales
se en c u en tra n a la m ism a a ltu ra . Los algoritm os de estereo visión d eben
id entificar p u n to s d e co rresp o n d e n cia e n tre las dos im ágenes con el fin de
en c o n trar la p ro fu n d id a d . U n p u n to en u n a im agen e s ta r á d esplazado en la
o tra im agen u n a d is ta n c ia que es d e p e n d ien te del d esp lazam ien to relativo
d e las cá m ara s y d e la pro fu n d id a d del p u n to en la escena. U n a vez que
1
Podemos inferir profundidad con u n solo ojo, pero esto se debe a conocimiento previo, interpretación
de movim iento ó inferencia a partir de la iluminación y las sombras.
1.2.
G E O M E T R ÍA E S T E R E O .
3
la co rresp o n d e n cia h a sido efectu a d a, la p ro fu n d id a d p u ed e ser ca lcu lad a
u san d o u n a tran sfo rm ac ió n g eo m é tric a o trian g u lac ió n (ver § 1 . 2 ).
El p roceso d e b ú sq u e d a d e los p u n to s de co rresp o n d e n cia pu ed e ser sim ­
plificado en v irtu d del m odelo geom étrico d e sc rito en el p árrafo an te rio r. Dos
consideraciones p u ed e n ser p o stu la d as:
• Los p u n to s q u e en u n a im agen ap a rez ca n en la lín ea i(lín e a epipolar),
a p a re c e rá n en la m ism a línea i en la o t r a im agen (propiedad de epipolaridad). E l p lan o que se define e n tre la lín ea i y el p u n to en la escena
se le lla m a plano epipolar.
• D efinam os el arreglo de la F ig. 1.3 en térm in o s de im agen d erecha D e
im agen iz q u ierd a / . Si un p u n to ap a re c e en la m ita d d e la d erecha de
D en to n c es, si a p a rec e en la im agen / , a p a re c e rá en su m ita d derecha.
Ig u a lm e n te , si un p u n to a p a rec e en la m ita d de la izq u ie rd a d e I e n ­
to n ce s, si a p a rec e en la im agen Z), a p a re c e rá en la m ita d izquierda.
E sto re d u ce el espacio d e b ú sq u ed a de un p u n to .
1.2
G eo m etría este r eo .
C on el fin d e ap lic a r la inform ación de p ro fu n d id a d a la resolución de pro b le­
m as, n ec esitam o s referenciar ca d a p u n to que observam os en la im agen con
re sp ecto al m u n d o físico. C on ta l efecto definim os dos s iste m as coordenados:
el s iste m a coordenado de la im agen q u e nos s e rv irá p a ra lo ca liz ar p u n to s en
la im agen y el sis te m a coordenado global en d o nde localizarem os cu a lq u ie r
o tr a cosa. L a F ig. 1.1 ilu s tr a la idea. M ed ian te el sis te m a co o rd en ad o global,
localizam os el p u n to v y la cá m a ra , que se e n c u e n tra tra s la d a d a del origen,
ro ta d a h o riz o n ta lm e n te un ángulo 0 , y con u n a dirección d e en foque a lz ad a
un ángulo <f>. L a proyección del p u n to v en la im ag en ,
es m ed id o con
re sp ecto al s is te m a co o rd en ad o de la im agen.
N u e stro p ro b le m a es e n c o n tra r u n a tran sfo rm ac ió n g e o m é tric a que nos
ex p rese las co o rd en ad a s de un p u n to en la im agen en té rm in o s del siste m a
co o rd en ad o global. D efinim os en to n ces, el plan o d e la im agen con resp ecto
al sis te m a co o rd en ad o global m e d ian te los siguientes tre s pasos:
1. T ra sla d am o s el c e n tro del p lan o im agen al c e n tro de la c á m a ra m e d ian te
4
C A P ÍT U L O 1. L A E S T E R E O V IS IÓ N .
F ig u ra 1.1: T r a n s fo r m a c ió n d e p e r s p e c tiv a . Dos sistem as co o rd en ad o s
son utilizados. La c á m a ra y el p u n to v son referenciados p o r el sis te m a
coordenado global. El sis te m a co ordenado de la im agen, q u e co n tien e al
p u n to im agen v ', es referen ciad o con resp ecto a la cám ara. Sea t>o la posición
del centro de rotación de la cá m ara . La cá m a ra tie n e un giro h o rizo n ta l de
u n ángulo 0 y su dirección d e enfoque e s tá alz a d a un ángulo <f>.
1.2.
G E O M E T R ÍA E S T E R E O .
5
u n a m a triz hom ogenea d e tra sla c ió n G e x p resad a com o:
2. G ira m o s h o riz o n ta lm e n te la c á m a ra un ángulo 6 y b aja m o s su dirección
d e en fo q u e un ángulo <f>, d e ta l m a n e ra que el eje Y (el eje d e p ro fu n ­
d id a d ) del s is te m a co o rd en ad o global quede p aralelo con el eje focal de
la cá m ara ; lo cual se p u e d e re p re s e n ta r p o r la m a triz ho m o g en ea de
ro tac ió n S , e x p re s a d a com o:
( 1.2)
3. T ra sla d am o s el c e n tro de ro tac ió n de la c á m a ra v 0 al c e n tro del sis te m a
g lobal. E sto se logra ap lica n d o el o p erad o r / / , definido com o u n a m a triz
h om ogenea por:
1
0
0
-x 0
0 1 0
-y o
0 0 1
- ¿o
0
0
0
(1.3)
i
L a tran sfo rm ac ió n a n te rio r, q u e nos e x p re s a p u n to s de la im agen en el sis te m a
co o rd en ad o global, es lla m a d a tran sfo rm ac ió n in v ersa de p ers p e c tiv a y se
ex p re s a com o:
v = H x S x G x v '
(1-4)
D espués de algunos cálculos R ic h ard O. DU D A en [9], o b tien e la localiza­
ción del c e n tro del le n te de u n a c á m a ra con re sp ecto al sis te m a c o o rd en ad o
global i>o;
xo
v0 =
yo
. z0 .
+
l\ eos 9
—
l¡s\n6
+
¡2 eos <fi sin 0
12 eos <¡>eos 6
12 sin 6
-
/3 sin r¡>sin 0
/3 sin 4>eos 0
+
l3 eos <p
+
( 1 .5 )
C A P ÍT U L O 1. L A E S T E R E O V IS IÓ N .
6
F ig u ra 1.2: G e o m e tr ía e s t e r e o . h e h re p rese n ta n los planos de las
im ágenes; L i y L 2 son los centros de las lentes; n y r? son las proyec­
ciones e n tre el p u n to v y los centros de las lentes, u i y 112 son los vectores
u n itario s en esa dirección; A = L 2 — L i es llam ado el v ector de base ó línea
epipolar; V i y v 2 son las proyecciones d e v.
y las coordenadas de un p u n to vp en la im agen con re sp ecto al s iste m a co o r­
denado global como:
(xp 4* li) cos ß
(xp + h)sin 9
- ( / + h ) cos sin #
+ ( f + l2) co s a c o s 0
( / + i2) sin Ö
+
+
(zp + i3) sin ÿ sin 9
(zp + /3) sin ¿ e o s 6
{zp +
i3) cos <l>
(1.6)
C on las ecuaciones 1.5 y 1.6 com o base, analizam os ah o ra u n arreglo
arb ita rio de las cám aras p a ra expe rim en tac ió n p o r estereoscopia. El arreglo
se m u e stra en la Fig. 1.2. E nfoquem os n u e s tra atención en d e te rm in a r la
intersección de las dos proyecciones 1*1 , r-¿. Idealm ente, ex isten dos n ú m ero s, a
1.2.
G E O M E T R ÍA E S T E R E O .
7
y 6 , ta l q u e a u ! = A -f- 6 u 2, entonces v = L j-J-a u j nos d a la re sp u e sta b u sca d a.
F o rm alm en te, deb e m o s e n c o n tra r los valores d e a y b que m inim izen:
J { a ,b ) = | a u , - ( A + fcu2)
|2
(1.7)
d o nde po d em o s e n c o n tra r, después de d eriv a r, los valores:
( 1.8 )
(1.9)
que m in im iza n J ( a ,6 ) . El valor L i e s tá d a d o p o r la ecuación 1.5. U n v ector
en la dirección del rayo de proyección e s tá d a d o p o r v , — L ,, d o n d e v,- e s tá
d ad o p o r la ecuación 1.6, y entonces:
( 1.10)
d o n d e los su b ín d ices in d ican la im agen y las len tes de las cám aras.
1.2.1
G e o m e tr ía sim p lific a d a
C onsiderem os ah o ra el m odelo m ás sim p le p a r a la expe rim en tac ió n e stereo s­
có p ic a re p re s e n ta d a en la F ig. 1.3.
E n la figura se ex p resan las siguientes condiciones:
• El ce n tro del len te de la p rim e ra c á m a ra e s tá en el origen.
• Los ce n tro s d e las lentes de las c á m ara s e s tá n alineados y sobre el eje X ;
p o r lo ta n to los p u n to s en la esc en a te n d rá n las m ism as co o rd en ad a s
en el eje Z en sus proyecciones so b re las im ágenes; é s ta es lla m a d a
c ondición de epipolaridad.
• Los ejes focales de las dos cá m a ra s son p aralelos e n tre si y paralelo s
con el eje de p ro fu n d id a d Y .
P a r a e x p re s a r m a te m á tic a m e n te el m odelo sim plificado to m am o s com o re ­
fe ren c ia la F ig. 1.4, en d o n d e asum im os q u e la c o o rd en ad a de a ltu r a Z
8
C A P ÍT U L O 1. L A E S T E R E O V IS IÓ N .
F ig u ra 1.3: G e o m e t r í a s ifn p lific a d á . Las dos cá m ara s es tá n relacio n ad as
p or un desplazam iento horizontal.
es la m ism a p a ra to d o s los pu n to s del plano (condición de ep ip o larid a d ) y
p a ra fa cilita r la com prensión de la idea, no es m encionada. U n p u n to p de
coordenadas ( xpi1yp)t se p ro y e cta sobre dos planos im ágenes sep a rad o s del
centro de sus lentes u n a d ista n cia /. G racias a la g eo m e tría del m odelo y a la
sem ejanza e n tre trián g u lo s, las siguientes relaciones p u eden ser p o stu la d as:
Xi
/
-
x2
/
En
E n
“
( 1 .1 1 )
Vp
(1 .1 2 )
yp
y
d = x n + Zp?
(1.13)
donde d es la d is ta n c ia e n tre los centros de las lentes d e las cá m ara s, x \ y a?2
son las distancias de las proyecciones sobre el eje X de la im agen del p u n to
p a los centros de las lentes de las cám aras 1 y 2 re sp ectiv am en te y x Pl y Xp^
son d ista n cias de las proyecciones del p u n to p a los centros de las lentes de
las cám aras 1 y 2 respectivam ente.
R esolviendo este siste m a de ecuaciones, el cálculo de la p ro fu n d id a d Y se
reduce a:
( 1 . 14 )
1.3.
D E T E C C IO N D E C O N T O R N O S.
9
F ig u ra 1.4: G e o m e t r í a e s t e r e o s i m p l i f i c a d a . El p u n to p se p ro y e c ta sobre
dos im ágenes; / es la d is ta n c ia focal d e las lentes; X\ y x 2 son las d ista n c ia s
de las proyecciones d e las im ágenes sobre el eje X al c e n tro d e las lentes;
x v\ y XP2 son ^as d is ta n c ia s d e las proyecciones del p u n to p sobre el eje X al
c e n tro de las len tes y d es la d is ta n c ia e n tre las lentes.
que nos re d u ce el p ro b le m a del cálculo d e la p ro fu n d id a d d e u n p u n to , al
conocim iento d e la d is ta n c ia focal / p ro p ia del len te, la d is ta n c ia e n tre el
c e n tro del le n te d e las cá m a ra s d y la d isp arid a d e n tre los p u n to s.
1.3
D e te c c ió n d e con torn os.
U n a vez d e te rm in a d o q u e la solución al p ro b lem a de o b ten c ió n de inform ación
de p ro fu n d id a d se resu elv e p o r el d esc u b rim ie n to de la co rresp o n d e n cia e n tre
ca ra c te rís tic a s en am b a s im ágenes, debem os d e te rm in a r cuales son esas c a r­
ac terísticas. E ric L eifur G R IM S O N en [3], d ete rm in ó que las ca ra c te rís tic a s
sobresalientes d e u n a superficie se o b tien en de ac u erd o a los cam bios que la
luz e x p e rim e n ta al reflejarse en las superficies, es decir el cam bio en la lu m i­
nosidad. El cam b io d e lu m in o sid ad se m a n tien e c o n s ta n te e n tre los co ntornos
C A P ÍT U L O 1. L A E S T E R E O V IS IÓ N .
10
(C)
F ig u ra 1.5: D e te c c ió n d e c a m b io s e n u n a im a g e n u n id im e n s io n a l.
E n (a) se p re se n ta un cam bio en la lum inosidad. El cam bio es asociado a
u n m áxim o local en la p rim e ra deriv a d a (b) y u n cru zam ien to p o r cero en la
segunda d erivada (c).
de un o b je to 2. Los lugares de cam bio de lum inosidad tie n e n p o r lo ta n to , la
propiedad m a te m á tic a de que la p rim era d erivada p re sen ta un m áxim o o un
m ínim o y la seg u n d a d eriv a d a un cruzam iento p o r cero (ver F ig. 1.5).
La d erivada es u n o p e ra d o r direccional, esto significa q u e la o peración
se re aliza to m an d o com o referencia alguno de los ejes co o rdenados. E sto
pre sen ta la dificultad d e que algunas im ágenes no tien en sus cam bios de
lum inosidad de ta l m a n e ra que la derivada los d e te c te fácilm ente. La Fig.
1 .6 p re sen ta el caso de la aplicación de la segunda d eriv a d a en la detección
de los cruces p o r cero. L a fidelidad del re su lta d o del o p e ra d o r d ep e n d e de
la dirección en la que se aplique. Debem os aplicar la seg u n d a d eriv a d a de
tal m an e ra que co in c id a con la dirección de m áxim o cam bio, con el fin de
ob ten e r un re su lta d o fiable.
P a ra resolver el p ro b le m a de la determ inación del m áxim o cam bio en la
2
Esto establece un paralelismo con la estructura física de loa objeto», pues entre lo» contornos el cambio
de profundidad se mantiene constante.
1.4.
T R A B A J O S P R E V IO S .
11
seg u n d a derivada, se u tiliz a co m ú n m en te el O p e rad o r L aplaciano V 2; el cual
o b tien e la m áx im a m a g n itu d p e rm itién d o n o s prescindir de la dirección en la
cual se ap lica la op eració n .
P rá c tic a m e n te , el L ap la cian o no es aplicado d ire c ta m e n te so b re la im a ­
gen. P rim e ra m e n te, la im agen es su av iza d a p o r m edio de u n filtro q u e d e­
gra d e las alta s frecuencias (filtro p a s a -b a ja s). Se h a utilizado am p lia m e n te
la convolución de la im agen con un filtro G aussiano:
Ga( x ,y ) * I ( x ,y )
(1.15)
donde el o p erad o r G a u ssia n o G a , e s tá d ad o por:
G<r{x i y ) = tf^ e x p - ^* +y M 2<7 )
(1.16)
e / es la función de la im agen.
M atem á tic am en te, la im agen es filtra d a u tiliz an d o el sig u ie n te g ru p o de
operadores:
f ( x ,y ,< r ) = V 2G ' * I { x , y ) .
(1.17)
El op erad o r de convolución V 2 G a e s tá d ad o por:
V 2 G „(r,< 7 ) = ( L ^
- )
exp
(1.18)
donde:
r = y j x 2 -f y 2
(1-19)
El p a rá m e tro lib re a d e te rm in a el ta m a ñ o espacial de la función.
P a ra o b te n e r u n a descrip ció n d e los cam bios en la im agen, ap lica m o s el
filtro y localizam os los c ru zam ien to s p o r cero en el resu lta d o .
1.4
T rabajos p revio s.
El p ro b lem a fu n d a m e n ta l en estereo sco p ia , llam ado el problem a de la corres­
pondencia, es e n c o n tra r las proyecciones d e las ca ra c te rístic a s d e la esc en a
en las dos im ágenes. E sta s c a ra c te rís tic a s pueden ser p u n to s , re c ta s , c u r­
vas, superficies, e tc . T ra d icio n alm en te, podem os clasificar las soluciones al
p ro b lem a de la co rresp o n d e n cia d esde dos p u n to s de vista:
12
C A P ÍT U L O 1. L A E S T E R E O V IS IÓ N .
F ig u ra 1.6: F a c to r e s e s p a c ia le s y d ir e c c io n a le s e n la a p lic a c ió n d e la
s e g u n d a d e r iv a d a . E n (a) se m u estra un cam bio de lum inosidad y (b ), (c)
y (d) son las segundas deriv a d as en varias direcciones. E n (b) la seg u n d a
deriv a d a es to m ad a con re sp ecto al eje x, y en (c) y (d ) la seg u n d a d eriv a d a
es to m a d a a 30 y 60 gra d o s con respecto al eje x. La seg u n d a d eriv a d a con
resp ecto a Y d a ría cero en e s ta zona.
1.4.
T R A B A J O S P R E V IO S .
13
T é c n ic a s b a s a d a s e n la in t e n s id a d . Se b asa n en la b ú sq u ed a d e la co­
rre s p o n d e n c ia p u n to a p u n to de las im ágenes to m an d o en c u e n ta la
lu m in o sid ad de los pixeles en la im agen. P o r ejem plo los siguientes dos
alg o ritm o s del tip o c o o p e rativ o 3:
• E llen C. H IL D R E T H en [5], p re sen tó u n algoritm o que involucra
m ovim iento con estereoscopia, ta l q u e la organización del m ovi­
m ie n to en u n a serie de im ágenes nos p e rm ite n a n a liz ar el am b ien te
en térm in o s de o b je to s , su m ovim iento en el espacio y su e s tru c ­
t u r a trid im e n sio n al, inferida en base al cam bio en las in ten sid ad es
de luz que p ercib e la cá m ara . Su análisis se d ivide en dos e ta ­
pas. P rim e ro la d e te rm in a ció n de la m ag n itu d y dirección de la
velocidad d e los elem entos en la im agen en base a sus cam bios
de in ten sid ad . S egundo los o b je to s son sep a rad o s y su e s tru c tu ra
trid im e n sio n al inferida.
• N asser M. N A S R A B A D I, S a n d ra P. C L IF F O R D , y Yi LIU en [4],
in teg ra n el flujo ó p tico (d e sp la za m ien to d e los pixeles e n tre u n a
im agen y la siguiente) con la in ten sid ad d e los pu n to s en la im a­
gen p a ra p ro d u c ir u n a función q u e ex p re s a rá las d isco n tin u id a d es
de p ro fu n d id a d de la solución. L a inform ación de in ten sid ad de
los pixeles en las im ágenes estereo es u tiliz a d a p a ra c a lcu lar la
e s tru c tu ra trid im e n sio n al, m ie n tra s q u e el flujo ó ptico confirm a la
aproxim ación y ofrece solución p a r a las regiones ocluidas u o cu l­
ta s.
T é c n ic a s b a s a d a s e n c a r a c te r ís tic a s . Se selecciona a lg u n a p rim itiv a co­
m o líneas re c ta s , esq u in as de o b je to s o segm entos de curvas p a r a el
ap a re a m ie n to . Los alg o ritm o s b asa d o s en ca ra c te rístic a s son m enos
caros, co m p u tac io n alm e n te, que los alg o ritm o s basados en la in ten sid ad
deb id o a la utilización d e prim itiv a s.
A c o n tin u ac ió n pre sen tare m o s dos alg o ritm o s p a ra la solución del p ro ­
b lem a de la estereo sco p ia b asa d o s en c a ra c te rís tic a s , que fueron de preciosa
ay u d a p a r a el d esarrollo del p re se n te tra b a jo .
^Son algoritm os del tipo cooperativo aquellos que obtienen información de movim iento, flujo óptico u
14
C A P ÍT U L O 1. L A E S T E R E 0 V 1 S IÓ N .
S e g m e n t o s d e lín e a r e c t a c o m o p r im itiv a s .
R am ak a n t NEV ATIA y G e rard M E D IO N I propusieron un algoritm o en [8 ],
en el cual utilizan segm entos d e línea re c ta com o prim itivas. U n a serie de
filtros, ca d a uno d e ellos sensible a u n a dirección de re c ta diferente, es u t i ­
lizado p ara d e te rm in a r la dirección de la re c ta en un p u n to . E l re su lta d o es
encadenado a o tra s re ctas. P a ra ca d a re c ta se a lm ac en a un c o n ju n to de des­
crip to res co nsistente en: las coordenadas d e los p u n to s finales, la orientación
y el prom edio del co n tra ste.
E l a lg o r itm o d e c o r r e s p o n d e n c ia .
• P a ra ca d a re c ta i en u n a im agen se c o n stru y e u n a v e n ta n a en la o tr a i­
m agen sobre la cual se buscan la re ctas j q u e co rresponden a i. Se define
la función p { i , j ) } que in d ica el prom edio de la d isp arid a d o diferencia
e n tre los pu n to s correspondientes a las re ctas i y j .
• Sobre el c o n ju n to de ca rac terísticas que co rresponden se ca lcu la u n a
función de eva luación v
que consiste en c o m p a rar los valores de la
función p ( i , j ) p a ra el conjunto de re ctas en la vecindad p ró x im a de i
y j . La función v ( i , j ) se u tiliz a com o u n a fo rm a de darle ro b u stes a la
correspondencia, pues u tiliz a adem ás, la restricción de co n tin u id ad en
los objetos de la escena ( ver Fig. 1.7). Al final se elige el segm ento con
el valor de v ( i , j ) que indica m ayor ce rtez a de co n tin u id ad del co n to rn o
del objeto.
U t iliz a c ió n d e la d ir e c c ió n d e la cu rv a .
N asser M. N A S R A B A D I y Yi LIU en [7] p re sen taro n u n algoritm o q u e u tiliz a
segm entos de curva com o prim itivas en el proceso de co rrespondencia. Ellos
aplican el filtro lap lac ian o (ver §1.3) d ando tre s valores diferentes a la variable
de control a con lo cual o b tien en tres im ágenes diferentes de co n to rn o p a ra
ca d a im agen del p a r estereo. P a ra ca d a im agen del co n to rn o o b tien en los
segm entos de cu rv a d e la siguiente m anera:
• E n co n trar u n pixel del contorno.
1.4.
15
T R A B A J O S P R E V IO S .
(b)
F ig u ra 1.7: R e s t r i c c i ó n d e c o n t i n u i d a d . E n (a) Los contornos B y D son
c o m p a tib les con el cono c im ie n to p revio, m ie n tra s que en (b) no lo son.
• D e te rm in a r la dirección del pro m ed io local del g ra d ie n te y so b re ca d a
p ixel de la vec in d ad ocho c o n e c ta d a b u sca r el segm ento de cu rv a. Un
p ixel es s u je to d e b ú s q u e d a si la dirección del p ro m ed io local del g ra ­
d ie n te no ca m b ia d e m a sia d o con re sp ecto al an te rio r.
U n a ta b la , lla m a d a R -ta b la , es c o n s tru id a p a r a c a d a segm ento d e curva.
La ta b la c o n tien e p a r a c a d a pixel, su o rien ta ció n y su d is ta n c ia al ce n tro id e
de la curva.
Las e n tra d a s al alg o ritm o de c o rresp o n d e n cia son los segm entos d e curva
ex tra íd o s de las im ágenes. C a d a segm ento e s tá identificado p o r u n a e tiq u e ta ,
la localización d e su c e n tro id e , su R -ta b la , la lo n g itu d de la cu rv a y la local­
ización de c a d a p ix el de co n to rn o en la curva.
Se c o n stru y e u n g rafo re la cio n al p a r a c a d a im agen. Los nodos del grafo
son las localizaciones del c e n tro id e y los arcos las relaciones e n tre los ce n ­
tro id es. Las R -ta b la s re p re s e n ta n la e s tru c tu ra in te rn a del n o d o y las d is­
tan c ia s e n tre los ce n tro id es las c a ra c te rís tic a s e s tru c tu ra le s de los o b je to s en
la escena. Los grafos d e las escen as son sim ilares y p o dem os a p lica r un algo­
ritm o que nos b u s q u e el m áx im o n ú m ero d e asociaciones no co n tra d ic to ria s
16
C A P ÍT U L O 1. L A E S T E R E O V IS IÓ N .
o m áxim o clique sobre el grafo.
P ro ce d ie n d o desde el nivel d e m enor al m ayor deta lle (desde u n valor a
a lto h a s ta uno b ajo se ev a lú an las nuevas disp arid a d es en c o n trad a s en base
a las p rim eras encontradas.
1.5
Inform alm ente: n u estro algoritm o.
N u e stro algoritm o p a r te de u n a p re m isa fu n d a m e n tal: Los contornos de los
o b jeto s son aproxim ables a n a lític a m e n te p o r trozos; é sto es, podem os ap ro x i­
m ar u n a función sobre u n a p a r te del contorno del o b je to que e s tá lim ita d a p o r
p u n to s de singularidad, p a rte s d o nde la función no es co n tin u a. Si podem os
ca ra c te riz a r esos segm entos d e cu rv a n a tu ra le s de los o b jeto s h ab rem o s d ado
el paso de au m e n ta r el nivel d e ab stra cc ió n desde niveles de gris en la im agen
h a s ta expresiones m atem á tica s de los contornos. Tras lo cual el proceso de
co rrespondencia en tre los o b je to s se pu ed e llevar a cabo to m an d o en cu e n ta
las c a rac terísticas de ca d a cu rv a y la relación de las curvas con re sp ecto a los
o b jeto s y por últim o la relación de los o b jeto s en la escena.
L a descripción de to d o tip o de curvas a p a r tir de u n a im agen no es ta re a
sencilla, el ruido p o r u n a p a r te y la enorm e v ariedad d e curvas p o r o tro nos
vuelven la ta re a ex tre m a d a m e n te com plicada. P roponem os la aproxim ación
de curvas m ed ian te pequeños segm entos de línea re cta; lo suficientem ente
pequeños com o p a ra que la n a tu ra le z a o riginal d e la curva no se p ie rd a y
lo suficientem ente g randes com o p a ra que ex presen de m a n e ra ro b u s ta la
dirección de la curva e n esa p a r te . Igua lm e n te se pro p o n e la su stitu c ió n de la
expresión a n á litic a de la cu rv a p o r su expresión en térm in o s de descriptores;
si el c o n ju n to de d esc rip to res d e la curva es com pleto, entonces la curva
será suficientem ente d istin g u ib le. P o r ú ltim o, proponem os el em pleo de la
inform ación e s tru c tu ra l de los segm entos de cu rv a con respecto a los o b jeto s
con el fin de elim inar am bigüedades.
El m éto d o pro p u e sto tie n e algunas restricciones de an tem an o . Las oclu­
siones no se m anejan y estam o s aten id o s a u n a b u e n a detección de contornos.
E l p rim er pro b lem a lo dejam os a b ie rto ; el segundo se soluciona con la u ti­
lización de los p o ten tes o p erad o re s (L aplaciano del G aussiano, C a n n y 4, etc .),
que la te o ría del pro c esam ien to d e im ágenes nos ofrece.
4Ver la presentación de John CANNY en [11), para mayor detalle.
Capítulo 2
El modelo de estereoscopia
propuesto.
2.1
In trod u cción .
El e sq u e m a del m odelo p a r a ex p e rim en tac ió n estereoscópica d esa rro llad o se
m u e s tra en la Fig. 2.1. Dos im ágenes son to m a d a s siguiendo el m odelo p re ­
se n ta d o en la subsección 1.2.1. En seg u id a, las im ágenes se s o m etiero n a u n
proceso de detección de c o n to rn o s d e ac u e rd o a la te o ría que se e x p o n d rá en
§2.2. Los co n to rn o s d e te c ta d o s re s u lta b a n d em a sia d o gruesos p a r a re a liz a r
la e x tra cc ió n d e contornos con n u e s tro m odelo, p o r lo que a n te s las im ágenes
fueron so m etid as a un alg o ritm o de ad e lg aza m ie n to de líneas. E s te alg o ritm o
s erá fo rm a lm e n te p re sen tad o en §2.3. El m odelo de ex tra cc ió n d e c o n to rn o s
s erá in tro d u c id o en §2.4. Se b u sca la co rresp o n d e n cia e n tre los segm entos de
cu rv a e x tra íd o s d e ac u erd o a n u e s tro a le g a to en §2.5 y p o r ú ltim o la p ro fu n ­
d id ad es d e te c ta d a siguiendo las ec uaciones d e n u e s tro m odelo geo m é tric o
(ver subsección
2.2
1 . 2 . 1 ).
F iltro G rad ien te.
Si ( 6 f ) / ( S x ) y (6 f ) / ( 6 y ) son la razón d e cam bio de u n a función / en dos
direcciones p erp en d icu lares x y y, e n to n c e s la razón de cam bio en c u a lq u ie r
17
18
C A P ÍT U L O 2.
E L M O D E L O D E E S T E R E O S C O P IA P R O P U E S T O .
Figura 2.1: D ia g r a m a a b lo q u e s d e l m o d e lo p r o p u e s to .
2 .2 .
F IL T R O G R A D IE N T E .
19
dirección 0, m e d id a d esde el eje-a:, es:
Z > „ / ( z ,y ) = g c o s 0 + g s in í>
(2 . 1 )
donde D u f ( x , y ) ex p re sa la d eiv a d a direccional d e f ( x , y ) . La dirección en
la cual la ra zó n de cam b io tien e su m áxim o valor es arctan(6x/< 5y), su
m a g n itu d es yj\(6 f / S x ) 2 -f ( 6 f / Sy)2. El vec to r q u e tie n e e s ta dirección y e s ta
m a g n itu d es llam ad o el g radiente d e / .
L a re s p u e s ta de la d eriv a d a direccional v aría de ac u erd o a la o rien ta ció n
del co n to rn o . P a r a u sar la d eriv a d a en la dete cció n d e contornos, u tilizam os
la m a g n itu d del g ra d ie n te , el cual nos p ro p o rcio n a la razón de cam bio en la
dirección de m á x im a variación.
P a r a p o d e r u tiliz ar u n a c o m p u ta d o ra d ig ita l, deb e m o s tra s la d a r n u estra s
expresiones p a ra tr a b a ja r con diferencias en lu g ar de d erivadas y con u n a
función I d is c re ta en lu g ar d e la función / co ntinua:
(A Xl ) ( x , y) 5 I ( x , y) - I ( x -
1 , y)
( 2 .2 )
(A Xl ) ( x , y) = I ( x , y) - I ( x , y - 1)
(2.3)
Lo cual eq u iv a le a re a liz a r la convolución de / con los siguientes vectores:
[1
- i]
y
[ _ ; ]
(2.4)
L a m a g n itu d del o p e ra d o r g ra d ie n te sobre u n a im agen I se ex p resa com o:
G [ I { x ,y ) \ = \J [ I [ x ,y ) - I ( x + 1 ,J/ ) ] 2 + \ I ( x , y ) - I ( x , y + l ) ] 2
(2.5)
R esu ltad o s sim ilares pu ed e n alc an za rse u tiliz a n d o valores absolutos:
G [ I { x ,y ) \ S | I ( x , y ) - I ( x + 1 ,y ) | + | I ( x , y ) - I ( x , y + 1) |
(2.6)
La relación e n tre los pixeles es m o s tra d a en la F ig. 2.2 (a).
O tra fo rm a d e o b te n e r el g ra d ie n te es el lla m a d o O perador R oberts, el
cual u tiliz a las diferencias cru zad a s (ver Fig. 2.2 (b )):
G [ I ( x ,y ) ] = iJ [ I { x ,y ) - I ( x + l , y + l ) ] 2 + [ /( x + l , y ) - I ( x , y + l ) ] 2
(2.7)
20
C A P ÍT U L O 2.
E L M O D E L O D E E S T E R E O S C O P ÍA P R O P U E S T O .
F ig u ra 2.2: C á lc u lo d e l f i l t r o g r a d i e n t e .
En (a) y (b) se m u e s tra n los cálculos de las ecuaciones 2.6 y 2.8 re sp ectiv a­
m ente.
o, usando valores ab so lu to s:
G [ /( x ,y ) ] = | I { x , y ) - I ( x + l , y + 1) | + | / ( x + 1 ,y) - I ( x , y + 1) | (2.8)
E xisten m uchas m a n e ra s d e u tiliz ar el re su lta d o del filtro gra d ie n te; a noso­
tros nos in tere sa c a ra c te riz a r los pixeles de la im agen com o p erte n ec ie n tes a
u n a de dos clases: C O N T O R N O o F O N D O ; por lo cual aplicam os la siguiente
relación:
■
J(x
- I C 0N T0R N 0
| FONDO
si G W * . *)] 5 Q
s in o
,2
o)
D onde a es u n valor re al a rb itra rio llam ado um bral de binarización.
2.3
A d elg a za m ien to de lín eas.
El adelgazam iento d e líneas es utilizado com o u n a e ta p a in te rm e d ia e n tre la
detección de los contornos y su extracción. El o b jetiv o del a d e lg aza m ie n to de
líneas es gen e rar un esqueleto unitario (un esq u e le to de un pixel d e grosor). Es
decir, ca d a pixel d e b e e s ta r conectado con no m ás de dos pixeles a d ja cen tes a
2.3.
A D E L G A Z A M I E N T O D E L ÍN E A S .
21
Pq
P2
P3
P8
Pi
P\
Pe
P4
Ps
F ig u ra 2.3: V e c in o s d e l p u n t o P\ e n u n a v e n ta n a d e 3 x 3
m enos que se t r a te d e u n a intersección de curvas. A continuación p re sen tam o s
el alg o ritm o p ro p u e s to p o r T .Y . ZH A N G y C .Y . S U E N con la m e jo ra de
H u m b erto SOSSA (ver [10]):
A lg o r itm o d e a d e l g a z a m ie n t o d e lín e a s
Sea la función d is c re ta I ( x , y , g ) , la re p rese n ta ció n de u n a im ag en d ig ita l,
donde l < x < C , 1 < y < //", y 0 < <7 < 1 . H y C son el n ú m e ro de
hileras, colum nas re sp ectiv am en te ; x ,y y g e enteros. D efinam os a P, com o
in sta n cias de / llam ad a s p u n to s . I así co nsiderado contiene s o lam en te dos
clases (C O N T O R N O y F O N D O ), d e ta l m a n e ra que:
CONTORNO
FONDO
si k = 1
si k = 0
( 2 . 10)
P a ra el proceso de ad e lg aza m ie n to se u s a r á u n a v e n ta n a de 3 x 3 con el
o rd e n am ien to de pixeles que se m u e s tra en la Fig. 2.3.
A l g o r i t m o : A d e lg a za m ien to d e líneas.
E n t r a d a s : L a im agen d ig ita l I.
S a l i d a s : L a im ag en d ig ita l I 1 cuyas líneas fo rm an u n esq u e le to u n ita rio .
1. R ealiza r el sig u ie n te c o n ju n to de itera cio n es sobre la función I:
I t e r a c i ó n 1 . El p u n to Pi es b o rrad o d e la im agen si cu m p le las
s ig u ie n tes condiciones:
( a ) P2 X P4 X P6 = 0
(b) Pt x P6 x Pa = 0
(c) 2 < B ( P ¡ ) <
6
22
C A P ÍT U L O 2.
E L M O D E L O D E E S T E R E O S C O P IA P R O P U E S T O .
(d) A ( P i) = 1
d o nde A (P \) es el nú m ero de p a tro n e s 01 en el conjunto o r­
d enado P2tP 3 ,...,P 9 , y
B (/>,) = ¿ P ,
(2 .1 1 )
1=2
es el nú m ero d e vecinos no cero d e P \.
I t e r a c i ó n 2 . E n e s ta seg u n d a itera ció n , las condiciones l a y Ib
son cam biadas por:
(a) P2 x P4 x P8 = 0
(b) P2 x P6 x P8 = 0
y el re sto perm a n ec e igual.
I t e r a c i ó n 3 . E n e s ta te rc e ra iteració n , el p u n to Pi es b o rra d o de
la im agen si cum ple u n a de las siguientes condiciones:
(a) ~P¡ x P4 x P6 = 1
(b) ^
x P6 x P8 = 1
(c) Ps X P8 x P2 = 1
(d) T 7 X P2 X P4 = 1
2. R e p e tir el paso a n te rio r h a s ta q u e n ingún p u n to sea b o rra d o d e la
im agen.
2.4
E xtracción de con torn os.
La im agen original h a sido p a s a d a p o r un d e te c to r d e co n to rn o s en la fo rm a
del O p e rad o r R o b e rts. D espués, los contornos h a n sido erosionados h a s ta
lograr su rep resen tació n com o un esqueleto u n itario . A h o ra debem os m a n e ja r
la im agen p a r a e x tra e r de ella u n a inform ación que re p re se n te un nivel m ás
alto de ab stra cc ió n que sim ples niveles de gris.
D e fin ic ió n 2 .1 S e g m e n t o d e cu rv a . E s la secuencia conectada de pixeles
definida entre dos esquinas o ju n cio n es.
U n a de las consecuencias d e la definición 2.1, los segm entos de cu rv a se
definen sobre Z £ (el dom inio de los enteros) y no sobre 7£€ el dom inio de los
reales.
2.4.
E X T R A C C IÓ N D E C O N T O R N O S.
23
D e fin ic ió n 2 .2 E s q u in a o j u n c ió n . E s el lugar en el cual la dirección de
la curva cam bia m ás que un cierto ángulo i? o deja de existir.
N u e stro p ropósito es e n c o n tra r los segm entos de curva e n tre los q u e se
definen los o b jeto s en la im agen, c a ra c te riz a r esas curvas m e d ia n te u n c o n ­
ju n to de d esc rip to res y u tiliz a r los d e sc rip to res p a ra e n c o n tra r las cu rv as q u e
co rresp o n d e n . U n proceso p o s te rio r to m a rá las curvas que co rresp o n d iero n
y la inform ación de p ro fu n d id a d p o d rá ser c a lcu lad a p u n to a p u n to .
D e ac uerdo a las condiciones e x p e rim en tales a las que h a sido s o m etid o
n u estro m odelo de la c á m a ra , los segm entos de curva v arían poco; d e ta l
m a n e ra que los d esc rip to res se conservan d e n tro de un rango peq u e ñ o . P e ro
la ex tra cc ió n de la cu rv a sigue sien d o a fe c ta d a p o r el ru id o y d efecto s en la
operación de detección de co n to rn o s.
S u p o s ic ió n 2 .1 C ualquier segm ento de curva puede s er aproxim ada p o r seg­
m e n to s de línea recta.
El gra d o de e x a c titu d d e la ap ro x im ació n dep en d e de la lo n g itu d y del
n ú m ero d e segm entos de lín ea re c ta ; p o r lo ta n to , p a ra re d u cir el e r ro r se
te n d e rá a la elección de un g ra n n ú m ero d e segm entos de re c ta pequeños.
S upongam os que ten em o s el círculo de la F ig. 2.4 y las apro x im a cio n es
en base a tre s , c u a tro y ocho segm entos d e re ctas del m ism o ta m a ñ o . Si
to m am o s un nú m ero suficie n te m en te g ra n d e de segm entos d e re c ta s (lo cual
d e te rm in a la long itu d del seg m en to ) o b ten d re m o s u n a re p rese n ta ció n ta n
e x a c ta com o queram os del o b je to orig in al. Así pues, las curvas p re sen tes
en u n a im agen p o d rá n ser ap ro x im a d as p o r segm entos de lín e a re c ta y al
m ism o tiem p o conservar las p ro p ied a d es de la curva, siem pre y cu a n d o los
segm entos d e re c ta te n g a n u n a lo n g itu d suficientem ente p eq u e ñ a.
D e s a r r o llo d e l a lg o r itm o
S ea la función d is c re ta 7 ( x ,y ,p ) , la rep rese n ta ció n de u n a im ag en d ig ita l,
d o nde l < x < C , l < y < H , y O < g < \ . H y C son el n ú m e ro d e hileras
y colum nas re sp ectiv am en te ; las varia b les x, y y g c enteros. D efinam os a
p com o u n a in s ta n c ia de / , a la q u e llam arem os p u n to . L a función / así
co n sid erad a contiene s o lam en te dos clases (C O N T O R N O y F O N D O ), de ta l
m a n e ra que:
( 2 . 12)
24
C A P ÍT U L O 2.
E L M O D E L O D E E S T E R E O S C O P IA P R O P U E S T O .
b)
c)
d)
F ig u ra 2.4: A p r o x im a c i ó n d e u n o b j e t ó p o r s e g m e n t o s d e r e c t a s . E n
(a) se p re se n ta el o b je to original, en (b ), (c) y (d ) se ap ro x im a p o r 3, 4 y 8
segm entos de lín ea re cta.
D efinam os finalm ente V (p ) com o la vecindad de p , que c o rresp o n d e a un
cu a d rad o que tien e com o centro a p y tien e longitud de lado e n te ra y p o s itiv a
y p o r lo dem ás a rb itra ria .
A l g o r i t m o : O btención de los segm entos de curva de u n a im agen.
E n t r a d a s : La im agen dig ital / , ca rac teriza d a p o r las clases C O N T O R N O
y FONDO.
S a lid a s :
El c o n ju n to E , que re p rese n ta las curvas en 1.
1. E n c o n tra r el p u n to p ( i ,j , k) ta l que k e C O N T O R N O . Si no ex iste
ir al paso 7
2. A proxim ar el segm ento de re c ta / que se describe en V ( p ), si no
ex istiera ir al paso 1. E n o tro caso g u a rd a r los p u n to s e x tre m o s
de ese segm ento, q y r , p a ra fu tu ra s referencias.
3. U tiliz ar el p u n to g, u n ex tre m o del segm ento de re c ta , p a r a e n ­
c o n tra r u n segm ento de re c ta l\ en V(q ) que te n d rá com o p u n to s
ex tre m o s q\ y q2. C o m p a ra r el segm ento /1 con el o b te n id o en el
paso anterior; si la d iferencia e n tre las pen d ien tes es m u y g ra n d e
2.4.
E X T R A C C IÓ N D E C O N TO R N O S.
25
hem os e n c o n tra d o un ex tre m o del seg m en to d e cu rv a y debem os
co n tin u a r con el o tro e x tre m o (ir al paso 5).
4. U no de los p u n to s e x tre m o s del seg m en to d e re c ta e n c o n tra d o ,
<7, o <72 , es ig u al al centro del segm ento a n te rio r, co n tin u a r el
seguim iento del segm ento de cu rv a en la dirección del o tro p u n to
(ir al paso 3).
5. U tiliz ar el p u n to r, un ex tre m o del seg m en to d e re c ta , p a ra e n ­
c o n tra r u n seg m en to de re c ta
en V ( r ) q u e te n d rá com o pu n to s
e x tre m o s r , y r ¡ , C o m p a ra r el segm ento / 2 con el o b te n id o en el
paso an te rio r; si la diferencia e n tre las p en d ie n te s es m uy gra n d e
hem os e n c o n tra d o el segundo ex tre m o del seg m en to de cu rv a y
debem os co n tin u a r con o tr a curva. A gregar la c u rv a recién reco­
rr id a al co n ju n to E (ir al paso 1).
6.
U no de los p u n to s ex tre m o s del seg m en to d e re c ta e n c o n tra d o ,
r i o r 2 es igual al centro del seg m en to a n te rio r, c o n tin u a r el
seguim iento del segm ento de cu rv a en la dirección del o tro p n n to
(ir al paso 5).
7. H em os finalizado el análisis de la escena.
El p ro b lem a de la d im ensión de la V (p ) q u e d a a b ie rto . D e b e ser ta n
p equeño p a ra no c o rrer el riesgo de que dos m ás re c ta s e n tre n a la v e n ta n a y
suficientem ente g ra n d e com o p a ra e x p resar de m a n e ra ro b u s ta u n a dirección.
N osotros hem os e n c o n tra d o ex p e rim e n ta lm e n te que u n valor d e 11 X 11 p a ra
u n a im agen d e 768 co lu m n as x 512 hileras es ad e cu a d o .
L a Fig. 2.5 p re s e n ta u n a v e n ta n a , al seguir en las direcciones d e los
p u n to s p y q po d em o s e x p lo ra r to d o el segm ento de c u rv a y al m ism o tiem p o
e x tra e r el c o n ju n to d e d e sc rip to res de la curva. El co n ju n to de d esc rip to res
p a ra ca d a seg m en to d e cu rv a incluyen:
• L a lo n g itu d del seg m en to d e curva.
• L a dirección p ro m ed io del segm ento d e curva.
• Las co o rd en ad a s del centro ide.
• Las co o rd en ad a s de los p u n to s inicial y final del seg m en to de curva.
26
C A P ÍT U L O 2.
E L M O D E L O D E E S T E R E O S C O P IA P R O P U E S T O .
F ig u ra 2.5: E je m p lo d e u n a v e n ta n a . Las co o rd en ad as de los p u n to s
inicial y final son (2 ,5 ) y ( - 4 , - 5 ) y la re c ta definida es ap ro x im a d am en te
y = 1.5a; + 3. E n la figura, c es el centro de la v e n ta n a y p y q los ex tre m o s
del seg m en to de r e c ta definido.
2.4.
E X T R A C C IÓ N D E C O N TO R N O S.
27
2.4.1 D e te r m in a c ió n d e los se g m e n to s d e r e c ta .
El p ro b lem a co n siste en a p ro x im a r un c o n ju n to de p u n to s ub ica d o s d e n tro
u n a v e n ta n a a u n a lín e a re c ta ; p a r a ello elegim os el m éto d o de m ínim os
cu a d rad o s.
La solución n a tu ra l d e a p ro x im a r m e d ian te la m inim ización d e la d is ta n c ia
de los p u n to s a la r e c ta co n d u c e a ecuaciones m u y com plejas (ver [2 ]), en
las cuales la elim inación d e térm in o s que llevan a la sim plificación tie n d e a
p e rd e r la re s p u e s ta p a r a casos d eg enerados, com o x = k (d o n d e k es u n a
co n s ta n te a r b itr a ria ) . E n el p re sen te tra b a jo o b tu v im o s las soluciones p a ra
dos funciones:
• L a q u e ca lcu la el e r ro r asu m ien d o que las co o rd en ad a s x de los d ato s
de e n tra d a son b u en o s y los
de y p u ed e n ser m alos.
• A su m ir que las co o rd en ad a s y de los d ato s d e e n tra d a son b u enos y las
x p u eden e s ta r m al.
Escogem os los p a rá m e tro s que m inim izan la función que ca lcu la el e rro r p a ra
la s u m a d e las d is ta n c ia s a la re cta.
L a s c o o r d e n a d a s d e x s o n e x a c t a s y la s d e y p u e d e n n o s e r lo . M inim izem os:
(2.13)
s - ¿ ( v . - a x ¡ - b)2
E s d ec ir, p o stu le m o s las condiciones: 6 S /6 a = 6 S /6 b = 0. A plicando
e sta s condiciones ob ten em o s:
• 6 S /S a = 0
2 2 x i(y¡ - a x ¡ - b ) =
0
(2.14)
. S S /S b = o
^ ( y , - ax¡ - b) =
0
(2.15)
28
C A P ÍT U L O 2.
E L M O D E L O D E E S T E R E O S C O P ÍA P R O P U E S T O .
R esolviendo p a ra a y b llegam os a las siguientes ecuaciones:
_ n E?=i (s.i/.O - E!Li x¡ Efai y¡
(2.16)
(2.17)
L as c o o r d e n a d a s d e y s o n e x a c t a s y la s d e x p u e d e n n o s e r lo . M ini­
m i zemos:
(2.18)
A plicando las condiciones 6 S /6 a = 6 S /S b = 0, y resolviendo p a r a a y
b, tenem os:
" E i=i (x¡y¡) - E,=i
E,=i
(2.19)
(22°)
E n tre los con ju n to s de p ará m e tro s calculados, escogem os aquellos q u e m in i­
m izan la función E :
„
£ = E ," l ( a ^
2.5
+ f ± M -
( 2 -21)
A lgoritm o de corresp on d en cia.
El proceso de co rresp o n d e n cia se realiza en dos e ta p as. D u ra n te la p rim e ra ,
se co n stru y e un grafo que re p re se n ta las correspondencias p o tenciales d e ca d a
curva de ac u erd o a los valores d e sus descriptores; los desem pates son efectu ­
ados en base al d esp lazam ien to observado p o r la m ayoría de las curvas. La
segunda e ta p a t r a t a de e n c o n tra r la co rrespondencia e n tre los seg m en to s de
curva que no fueron ab a rca d o s d u ra n te la e ta p a anterior; p a ra ello se fo rm a n
grupos d e curvas que llam am os circuitos y que re p rese n ta n u n a sucesión de
segm entos d e cu rv a m uy próxim as e n tre si .
2.5.
A L G O R I T M O D E C O R R E S P O N D E N C IA .
29
F ig u ra 2.6: R e p r e s e n t a c i ó n d e u n a e s t r u c t u r a r e la c i o n a l p o r u n
g ra fo .
La im agen iz q u ierd a y derech a co n tien e n los seg m en to s L, y L \ re sp ectiv a­
m ente; d e ellas se d eriv a el grafo re s u lta n te .
2.5.1
P r im e r a e ta p a .
D efinam os u n a e s tru c tu ra relacional so b re el c o n ju n to d e elem entos Vi q u e
form an los segm entos de cu rv a
localizadas en la im agen i. S ea el c o n ju n to
P d e p re d ic ad o s u n ario s p*, definidos sobre c a d a ele m e n to de V¿:
• P i K j ) . E l c e n tro id e de la curva,
• P2 {v i,j)- E l pro m ed io de la dirección d e la curva,
• P3(v«,j)- La lo n g itu d de la curva.
F orm em os p o r ú ltim o el p re d ic ad o b in ario R definido sobre pares de elem en­
tos de la p rim e ra y seg u n d a im agen:
(2.22)
FALSO
e n o tro caso.
30
C A P ÍT U L O 2.
E L M O D E L O D E E S T E R E O S C O P IA P R O P U E S T O .
con 1 < r < JVj y 1 < s < N 2. D onde N \ y N 2 re p rese n ta n el núm ero
de segm entos de curva en la p rim era y seg u n d a im agen respectivam ente. Si
aplicam os el p redicado R a los segm entos de curva re s u lta n te s del proceso
de ex tra cc ió n de contornos, ob ten d re m o s un grafo de asociación e n tre nodos
con p ropiedades sem ejantes.
R efirám onos a la Fig. 2.6, las im ágenes izquierda y derech a e s tá n co n sti­
tu id a s p o r los segm entos de curva L, y L \ respectivam ente. B ajo el m odelo
de expe rim en tac ió n p re sen tad o en § 1 .2 y suponiendo q u e las líneas d e epipolarid a d fu e ran paralelas al eje X y que el p redicado R es V E R D A D E R O ,
ten d ría m o s el grafo relacional re s u lta n te m ostrado. L a c o rresp o n d e n cia que
se p re se n ta e n tre L \ L \ y L \ - L'2, y e n tre L 2 - L \ y L 2 - L \ p u ed e ser m an e­
ja d a p o r la n a tu ra le z a del desplazam iento del centroide p re sen tad o p o r la
m ayoría de los c a n d id ato s a corresponder; en escenas con un m ayor nú m ero
de segm entos de cu rv a que corresponden e s ta ten d e n cia es a ú n m ás m arc ad a .
2.5 .2
S eg u n d a eta p a .
Se d a el caso que p o r algún defecto en la detección de contornos o aú n del
a delgazam iento de líneas, algunos segm entos de curvas no co rresponden; e s ta
e ta p a t r a t a con ellas.
D e fin ic ió n 2 .3 C ir c u ito : E s un conjunto T de segm entos de curvas en los
que se conserva la propiedad de proxim idad m ediata o in m ed ia ta .
D e fin ic ió n 2 .4 P r o x im id a d in m e d ia ta : D ados dos segm entos de curva
diferentes r y s, existe proxim idad inm ediata entre ellos, si la distancia entre
uno de los extrem os de r a uno de los extrem os de s es m e n o r que un valor
arbitrario 7 . E l valor de 7 tiende a ser pequeño y del orden de unos cuantos
pixeles.
D e fin ic ió n 2 .5 P r o x im id a d m e d ia ta : D ados dos segm entos de curva di­
feren te s p y q, existe proxim idad m ediata entre ellos, s i existen r if r2, . . . ,
r *+i Para k > 2, tal que r x = p y r ^+1 = q y hay proxim idad inm ediata entre
n y r ¿+ 1 VI=]....*.
E jem plos ilu strativ o s de los conceptos de proxim idad m e d ia ta e in m e d ia ta
se p re sen tan en la F ig. 2.7. U na im agen puede e s ta r co m p u e sta d e varias
2.5.
A L G O R I T M O D E C O R R E S P O N D E N C IA .
31
F ig u ra 2.7: P r o x im id a d m e d ia ta e in m e d ia t a . E n (a) r y s tien en p ro x i­
m idad in m e d ia ta . E n (b) r y s tien en pro x im id ad m e d ia ta , y a que no tien en
p ro x im id ad in m e d ia ta p ero ex iste un q ta l q u e tie n e p ro x im id ad in m e d ia ta
con s y ofrece p ro x im id ad m e d ia ta p o r in term ed io d e q' con r. E n la figura
se cu m p le q u e V, 7 , < 7 ; donde 7 es u n valor real.
decenas de c ircu ito s; id ea lm e n te , los circuitos re p re s e n ta n e s tru c tu ra s in d e­
p e n d ie n te s y es p o sib le d esc rib ir la escena en base a la relación d e los circuitos
q ue la fo rm a n .
A l g o r i t m o : C álculo d e la co rresp o n d e n cia e n tre g ru p o s de segm entos de
curva.
E n t r a d a s : Los co n ju n to s T \ y T2, el conjunto d e circuitos de la im agen 1 y
2 con ele m e n to s
y ¿2 ,« re spectivam ente..
S a lid a s : El co n ju n to M de correspondencias e n tre g ru p o s d e curvas.
P R O C E D U R E P o sE m p a te ;
V A R i, j , m , n :IN T E G E R ;
B E G IN
F O R i: = 1 T O n um ero de circuitos en Ti
S elecciona el circuito-i de 7 j, <lt,F O R j : = 1 T O n u m ero de curvas p a ra o b te n e r d esc rip to res
S eleccionar el siguiente c o n ju n to de j-cu rv as del circuito t i it
32
C A P ÍT U L O 2.
E L M O D E L O D E E S T E R E O S C O P IA P R O P U E S T O .
C alcu lar el valor de los d escriptores del g ru p o -j
F O R m : = l T O n u m e ro de circuitos en T 2
S elecciona el circuito-m de T2} t 2tTrl
F O R n : = l T O nu m ero de curvas p a r a o b te n e r d esc rip to res
S eleccionar el siguiente c o n ju n to de n-curvas del circuito t 2tJn
C alcu lar el valor de los descriptores del g rupo-n
I F el p re d ic ad o R = V E R D A D E R O y
lo hace m ejo r q u e u n a co rresp o n d e n cia an te rio r T H E N
E lim in a r la a n te rio r co rrespondencia de M q u e in cluyera
alg u n a de las curvas actuales y
agregar la a c tu a l correspondencia.
END
END
END
END
END
E N D P o sE m p a te;
O b s e r v a c io n e s : El n ú m e ro de curvas p a ra o b ten e r d e sc rip to res, se re­
fiere al nú m ero m áxim o de curvas que esperam os u n ir. La selección del con­
ju n to de curvas de un circuito to m a en c u e n ta solo los segm entos d e curva
con pro x im id ad in m ed iata, é s to con el fin de dism in u ir la co m plejidad del
algoritm o. El valor d e los d esc rip to res se ca lcu la con sid eran d o q u e el g rupo
de curvas fo rm a u n a cu rv a nueva.
Capítulo 3
Resultados experimentales.
C on la te o ría y alg o ritm o s p re sen tad o s en el ca p ítu lo an te rio r fu e ro n d e s a rro ­
llados u n a serie d e p ro g ra m a s p a r a co m p u tad o ra. Se dispuso p a r a ta l efecto
de u n a c o m p u ta d o ra M acintosh Ilfx eq u ip a d o con u n a t a r je ta p a r a la dig ita lización de im ágenes m a rc a N eotech; dich a t a r je ta gen e ra u n a im ag en de 768
colum nas p o r 512 h ilera s en h a s ta 256 niveles de gris. Los p ro g ram as fueron
d esa rro llad o s en le n g u a je C , pu es la versión de M P W ( M a c kin to sh P rogram ­
m ing W orkshop) c u e n ta con u n ex c elen te ra s tre a d o r de errores (debuger) que
fa c ilita la pro g ram ac ió n .
Los cálculos de p ro fu n d id a d son p re sen tad o s com o ta b la s d e d a to s en los
q u e a p a rec e la p ro fu n d id a d del centroide; pues p o r el m om en to no co n ta m o s
con un m edio d e p re se n ta c ió n conveniente p a ra la observación p o r p a r te de
las perso n as. Las re p rese n ta cio n es d e e s tru c tu ra s trid im e n sio n ales, requ ie re n
la co n stru c ció n de procesos d e in terp o lac ió n de superficies, lo cual re q u ie re
u n a solución al p ro b le m a de la segm entación de o b jeto s. C reem os q u e esos
son pro b lem a s in te re s a n te s q u e m erecen atención p o r derecho p ro p io y no
hem os p ro p u e s to u n a solución p a r a ellos en este escrito.
3.1
3.1.1
La tasa.
I m á g e n e s o r ig in a le s.
L a F ig. 3.1 p re s e n ta las im ágenes originales de u n a ta s a . Las im ágenes de
la ta s a fueron las ú n ica s, en e s ta serie de experim entos, en las q u e la c á m a ra
33
34
C A P ÍT U L O 3.
R E S U L T A D O S E X P E R IM E N T A L E S .
F ig u ra 3.1: I m á g e n e s o r i g i n a l e s d e l a t a s a .
F ig u ra 3.2: I m á g e n e s g r a d ie n te d e la ta s a .
fue ca lib rad a. La p ro fu n d id a d m ed id a desde el centro del lente h a s ta la base
donde se apoyo la ta s a fue d e 60 cm , la separación e n tre las dos im ágenes fue
de 4cm y la d is ta n c ia del len te al plano im agen fue de 80m m .
3.1.2
Im a g en g r a d ie n te .
L a Fig. 3.2 p re se n ta las im ágenes g radientes o b ten id as de la F ig. 3.1. Las
im ágenes en la Fig. 3.1 fueron tra ta d a s p a ra b in ariz ar en O B JE T O y F O N D O
m ed ian te la m an ip u lac ió n d e su h isto g ram a. El nivel de gris e stab le cid o p a ra
el filtro g radiente fue de 2 0 .
3.1.
35
LA TASA.
F ig u ra 3.3: A d e l g a z a m i e n t o d e l í n e a s d e la t a s a .
F ig u ra 3.4: E x t r a c c i ó n d e c o n t o r n o s d e l a t a s a .
3 .1 .3
A d e lg a z a m ie n to d e lín ea s.
L a F ig. 3.3 p re s e n ta el re s u lta d o de a p lic a r el alg o ritm o d e a d e lg aza m ie n to
de líneas a las im ágenes de la F ig. 3.2. El re s u lta d o o b ten id o son lín eas con
grosor d e u n solo pixel ( esqueleto u n ita rio ).
3 .1 .4
E x tr a c c ió n d e c o n to r n o s.
L a F ig. 3.4 p re s e n ta el re s u lta d o d e ap lic a r el alg o ritm o de e x tra c c ió n de
co n to rn o s a las im ágenes de la F ig. 3.3. L a condición d e c o n tin u id a d se
cu m p le sie m p re y cu a n d o n o e x is ta n dos segm entos de r e c ta cu y a d iferen c ia
de p e n d ie n te sea m ayor a 30 grados.
36
C A P ÍT U L O 3.
R E S U L T A D O S E X P E R IM E N T A L E S .
Figura 3.5: E tiq u e t a c ió n d e la s cu r v a s e x t r a íd a s
la ta s a .
a
la s im á g e n e s d e
En la Fig. . 3.5 se etiquetan las curvas de las im ágenes de la Fig. 3.4.
Varias observaciones se desprenden:
• La aplicación de la definición 2.1, que hacía referencia a las carac­
terísticas de continuidad de los segm entos de curva que deseábam os
extraer, es m antenida.
• La curva 2 de la im agen derecha de la Fig. 3.4 es más larga de lo que
podíam os esperar. E sto se debe a qué, a lo largo del segm ento de curva,
no se presentaron dos segm entos de recta cu ya diferencia de p endiente
fuera mayor al perm itido.
Las tablas 3.1 presentan los descriptores de cada uno de los segm entos
de curva registrados en la Fig. 3.5. La longitud de cada segm ento debe
ser multiplicada por 5 para obtener el valor en pixeles. La dirección está
expresada en radianes y el resto de las coordenadas tom a com o origen la
esquina superior izquierda de la im agen, con direcciones positivas h acia la
derecha y hacia abajo.
3.1.5
A p a r e a m ie n to
Los segm entos de curva que aparecen en las tablas 3.1 fueron som etidas al
proceso de apaream iento. Los resultados de la primera etapa aparecen en la
tabla 3.2; en la primera colum na aparece la etiq u eta del segm ento de curva
3.1.
LA TASA.
37
T ab la 3.1: D e s c r ip t o r e s d e lo s s e g m e n to s d e c u r v a e x t r a íd o s d e la
ta s a .
T a b la 3.2: R e s u l t a d o s d e l a p a r e a m i e n t o d e la s c u r v a s e n la s i m á g e n e s
d e la ta s a . P r im e r a e ta p a .
curva apareada profundidad
54.599407
1
1
54.437870
3
3
54.872761
4
4
55.073330
5
5
55.089821
6
6
de la im agen 1, en la s e g u n d a la e tiq u e ta del seg m en to d e c u rv a d e la seg u n d a
im agen y en la te rc e r a c o lu m n a la p ro fu n d id a d , que se ex p re sa e n ce n tím e tro s.
Los re su lta d o s d e la seg u n d a e ta p a , c o n sisten te en a p a re a r g ru p o s de
segm entos d e c u rv a a p a re c e n en la ta b la 3.3. L a p rim e ra co lu m n a tie n e
las e tiq u e ta s d e los seg m en to s d e curva d e la p rim e ra im ag en y la seg u n d a
co lu m n a los de la s e g u n d a im agen.
T odas las c o rresp o n d e n cias son co rrec tas y la p ro fu n d id a d c a lc u la d a de
los centroides c o n c u e rd a con los re su lta d o s esp e rad o s. L a c u rv a n ú m e ro 7 de
la p rim e ra im agen no logró a p a re a r con la 7 de la seg u n d a im ag en y a q u e la
diferencia e n tre el p ro m ed io d e la dirección e n tre las dos e ra m uy g ra n d e.
T ab la 3.3: R e s u l t a d o s d e l a p a r e a m ie n t o d e la s c u r v a s e n la s im á g e n e s
d e la ta s a . S e g u n d a e t a p a .
g ru p o # 1
2, 8
g rupo # 2
2
38
C A P ÍT U L O 3.
R E S U L T A D O S E X P E R IM E N T A L E S .
F ig u ra 3.6: I m á g e n e s o r i g i n a l e s d e la s r a q u e t a s .
3.2
Las raq u etas de p in g-p on g.
3.2.1
Im á g e n e s o rig in a les.
L a F ig. 3.6 p re s e n ta las im ágenes originales de unas ra q u e ta s y un as p elo tas
de ping-pong. Las im ágenes del equipo d e ping-pong no fu e ro n ca lib rad as p o r
lo cual la inform ación de p ro fu n d id a d o b te n id a no tie n e nin g ú n significado
físico.
3.2.2
Im a g e n g r a d ie n te .
La Fig. 3.7 p re s e n ta las im ágenes gra d ie n tes o b ten id as d e la F ig. 3.6. El nivel
de gris establecido p a r a b in ariz ar la im agen fue de 20. V arias observaciones
se desprenden:
• E n los m angos d e las ra q u e ta s se observa u n a zona d e m ucho ruido.
3.2.
L A S R A Q U E T A S D E P IN G -P O N G .
39
F ig u ra 3.7: I m á g e n e s g r a d ie n te d e la s r a q u e ta s .
• A lgunas proyecciones d e las so m b ras de las ra q u e ta s h an p a s a d o com o
p a r te d e los co n to rn o s d e los o b jeto s.
• L a s o m b ra q u e reflejan las p e lo ta s d e ping-pong h a n p asa d o com o p a r te
del contorno.
3 .2 .3
A d e lg a z a m ie n to d e lín ea s.
L a Fig. 3.8 p re s e n ta el re s u lta d o d e a p lica r el a lg o ritm o de a d e lg aza m ie n to
de líneas a la F ig. 3.7. E l re s u lta d o o b ten id o son líneas con grosor d e u n
pixel ( esqueleto u n ita rio ).
3 .2 .4
E x tr a c c ió n d e c o n to r n o s.
L a F ig. 3.9 p re s e n ta el re s u lta d o de a p lica r el a lg o ritm o de ex tra cc ió n d e
c o n to rn o s a la F ig. 3.8. L a condición de co n tin u id ad se cu m p le siem p re y
40
C A P ÍT U L O 3.
R E S U L T A D O S E X P E R IM E N T A L E S .
F ig u ra 3.8: A d e lg a z a m ie n t o d e lín e a s a la s im á g e n e s d e la s r a q u e ta s .
3.2.
L A S R A Q U E T A S D E P IN G -P O N G .
41
F ig u ra 3.9: E x t r a c c i ó n d e c o n t o r n o s a la s i m á g e n e s d e la s r a q u e t a s .
c u a n d o no e x is ta n dos segm entos d e r e c ta c u y a d iferen c ia de p e n d ie n te sea
m ayor a 45 g rados. En la F ig. 3.9 solo ap a rec en los segm entos de c u rv a
c u y a lo n g itu d es m ayor o igual a 25 pixeles, ello elim in a b a s ta n te del ru id o
e x is te n te y no le re s ta m u ch a co m p re n sib ilid ad a las im ágenes.
E n la F ig. 3.10 se e tiq u e ta n las curvas de las im ágenes de la F ig.s 3.9.
V arias observaciones se d esp ren d en :
• L a ap licación d e la definición 2.1, q u e h a c ía referencia a las c a ra c ­
te rís tic a s d e c o n tin u id a d d e los segm entos d e c u rv a que d eseábam os
e x tra e r , es m a n te n id a .
• Las zonas d e los m angos h an sido definidas con un grado m ás o m enos
sa tis fa c to rio , co n sid eran d o el ru id o e x is te n te en ese lugar desde la im a ­
gen g ra d ie n te (F ig. 3.7).
El p a r de ta b la s 3.4, se p re s e n ta n los d esc rip to res de ca d a u n o de los
seg m en to s de c u rv a re g istra d o s en las im ágenes d e la F ig. 3.10. L a lo n g itu d
42
C A P ÍT U L O 3.
R E S U L T A D O S E X P E R IM E N T A L E S .
F ig u ra 3.10: E tiq u e t a c ió n d e la s c u r v a s e x t r a íd a s a la s im á g e n e s d e
la s r a q u e ta s .
3.2.
L A S R A Q U E T A S D E P IN G -P O N G .
43
T ab la 3.4: D e s c r i p t o r e s d e lo s s e g m e n to s d e c u r v a e x t r a íd o s d e la s
r a q u e ta s .
de c a d a seg m en to d e b e ser m u ltip lic a d a p o r 5 p a ra o b te n e r el valor en pixeles. L a dirección e s tá e x p re s a d a en ra d ia n es y el re sto de las co o rd en ad a s
to m a com o origen la e s q u in a su p e rio r izquierda de la im agen, con direcciones
positivas h a c ia la d erech a y h a c ia abajo.
3 .2 .5
A p a r e a m ie n to .
Los segm entos d e cu rv a q u e a p a rec en en el p a r de ta b la s 3.4 fueron so m etid as
al p roceso d e co rresp o n d e n cia. Los re su lta d o s de la p rim era e ta p a a p a rec en
en la ta b la 3.5; en la p rim e ra co lu m n a apa rec e la e tiq u e ta del seg m en to de
c u rv a d e la im ag en 1 , en la seg u n d a la e tiq u e ta del seg m en to d e c u rv a de
la seg u n d a im ag en y en la te rc e r a la p ro fu n d id a d , que no ex p re s a m ed id as
reales. Los renglones con asterisc o (* ) en la c o lu m n a d e c o m e n ta rio in d ican
u n a co rresp o n d e n cia in co rrec to .
A p a r tir d e los re su lta d o s d e la ta b la 3.5, podem os decir q u e el a p a re a ­
m ien to fue ra z o n a b le m e n te b u en o . El ap a rea m ie n to del seg m en to d e c u rv a 7
de la p rim era im ag en con la 18 d e la seg u n d a y el d e la 16 d e la p rim e ra con
el 23 d e la se g u n d a d e m u e stra n q u e n u estro concepto d e circuito si no m alo
si es p o r lo m en o s in co m p leto . V isu alm en te, p o d íam o s h a b e r esp e ra d o que
44
C A P ÍT U L O 3. R E S U L T A D O S E X P E R IM E N T A L E S .
Tabla 3.5: R e s u lta d o s
P r im e r a e t a p a .
de
la
c o r r e s p o n d e n c ia
en
la s
r a q u e ta s .
Tabla 3.6: R e s u lta d o s d e la c o r r e s p o n d e n c ia e n la s r a q u e ta s .
g u n d a eta p a .
grupo # 1
21, 24
Se­
grupo # 2
18
el segm ento 19 de la primera imagen corresponderá con la 20 de la segunda,
pero al observar sus datos observamos que los umbrales de aceptación para
la longitud no se alcanzaron.
Los resultados de la segunda etapa, consistente en buscar correspondencia
entre los grupos de segm entos de curva aparecen en la tabla 3.6. La primera
columna tiene las etiquetas de los segm entos de curva de la primera im agen
y la segunda colum na los de la segunda imagen.
Se encontró una gran cantidad de curvas que correspondeiron aunque se
hicieron algunos errores. Las curvas 7 y 8 de la primera imagen no formaron
par con la 7 de la segunda, en la segunda etapa del algoritm o ya que la curva 7
de la segunda y la 7 de la segunda imagen había encontrado correspondendia.
En los casos de las otras curvas las diferencias entre los descriptores justifican
su soltería.
3.3.
E L L A B O R A T O R IO .
45
F ig u ra 3.11: I m á g e n e s o r ig in a le s d e l la b o r a to r io .
3.3
E l laboratorio.
3.3 .1
Im á g e n e s o rig in a les.
La F ig. 3.11 p re s e n ta las im ágenes o riginales d e u n a p a r te del L a b o ra to rio
de P ro c e s a m ie n to de Im ágenes en la E .N .S .T d e B reta g n e. Las im ágenes del
la b o ra to rio no fueron c a lib rad as p o r lo cual la inform ación de p ro fu n d id a d
o b te n id a n o tie n e n ingún significado físico.
3 .3 .2
Im a g e n g ra d ie n te .
L a F ig. 3.12 p re se n ta las im ágenes g ra d ie n te o b te n id a s de las im ágenes de
la F ig. 3.11. E l nivel de gris e stab le cid o p a r a b in a riz a r la im agen fue d e 20.
46
C A P ÍT U L O 3.
R E S U L T A D O S E X P E R IM E N T A L E S .
A lgunas observaciones se desprenden:
• Las p a rte s trase ras de la c o m p u ta d o ra y del m onitor a la iz q u ierd a son
zonas de alto deta lle que no h a n sido m uy bien definidas p o r el o p e ra d o r
gradiente.
• A lgunas p arte s, com o el m arco de la p u e rta , la co m p u ta d o ra y las sillas
p re sen tan zonas de b ajo c o n tra s te que no h an sido m uy b ien definidas
p o r el o perador gradiente.
3.3.
E L L A B O R A T O R IO .
3 .3 .3
47
A d e lg a z a m ie n to d e lín ea s.
L a F ig. 3.13 p re s e n ta el re s u lta d o d e a p lica r el a lg o ritm o de a d e lg aza m ie n to
de líneas a las im ágenes d e la F ig. 3.12. El re s u lta d o o b ten id o son líneas con
grosor de u n pixel ( esqueleto unitario).
3 .3 .4
E x tr a c c ió n de c o n to r n o s.
L a F ig. 3.14 p re s e n ta el re s u lta d o de ap lic a r el a lg o ritm o de e x tra cc ió n de
c o n to rn o s a las im ágenes de la F ig. 3.13. L a condición de co n tin u id ad se
cu m p le siem p re y c u a n d o n o e x is ta n dos segm entos de re c ta cu y a d iferencia
de p e n d ie n te sea m ayor a 45 grados. E n las im ágenes de la F ig. 3.14 solo
a p a rec en los segm entos d e cu rv a cuya lo n g itu d es m ayor o igual a 25 pixeles,
48
C A P ÍT U L O 3. R E S U L T A D O S E X P E R IM E N T A L E S .
ello elim ina b astante del ruido existente aunque le resta algo de com prensi­
bilidad á la imagen.
En las im ágenes de la Fig. 3.15 se etiquetan las curvas de las im ágenes
de la Fig. 3.14.
En las tablas 3.7 se presentan los descriptores de cada uno de los seg­
mentos de curva registrados en la Fig. 3.15. La longitud de cada segm ento
debe ser m ultiplicada por 5 para obtener el valor en pixeles. La dirección
está expresada en radianes y el resto de las coordenadas tom a com o origen
la esquina superior izquierda de la im agen, con direcciones positivas hacia la
derecha y hacia abajo.
3.3.
E L L A B O R A T O R IO .
49
F ig u ra 3.15: E t i q u e t a c i ó n d e la s c u r v a s e x t r a íd a s d e la s i m á g e n e s d e l
la b o r a to r io .
50
C A P ÍT U L O 3.
R E S U L T A D O S E X P E R IM E N T A L E S .
Tabla 3.7: D e s c r ip to r e s d e lo s s e g m e n to s d e c u r v a e x t r a íd o s d e l la ­
b o r a to r io .
3.3.
E L L A B O R A T O R IO .
3 .3.5
51
A p a r e a m ie n to .
Los seg m en to s de cu rv a que a p a rec en en la ta b la 3.7 fueron so m etid as al
proceso d e co rresp o n d e n cia. Los re su lta d o s de la p rim e ra e ta p a apa rec en en
las ta b la s 3.8; en la p rim e ra c o lu m n a ap a re c e la e tiq u e ta del segm ento de
cu rv a de la p rim e ra im agen, en la seg u n d a c o lu m n a, la e tiq u e ta del segm ento
de cu rv a d e la se g u n d a im agen y en la te rc e r a la p ro fu n d id a d , que no ex p resa
las m ed id as reales.
L a s e g u n d a e ta p a no se ejecutó, y a que se consideró que el nú m ero de
corresp o n d e n cias s e ría m ínim o en co m p a rac ió n del esfuerzo co m p u tac io n al.
T ab la 3.8: R e s u l t a d o s d e l a c o r r e s p o n d e n c i a e n e l l a b o r a t o r i o . P r i ­
m e ra e ta p a .
Capítulo 4
Conclusiones.
En e s te tra b a jo p re sen tam o s los fu n d a m e n to s, la con stru c ció n y la e x p e ri­
m en tac ió n d e un m odelo de estereovisión p a ra e n c o n tra r la co rresp o n d e n cia
e n tre segm entos de cu rv a u tiliz a n d o d esc rip to res com o p rim itiv a . E n el m o d ­
elo p ro p u e sto no se incluyó la solución al p ro b le m a d e la re co n stru cc ió n
trid im e n sio n al.
En la p rim e ra p a r te del re p o rte se p re te n d ió d a r u n a p a n o rá m ic a global
del á re a de estereovisión; é sto incluyó los m odelos geom étricos u tiliz ad o s, la
ca rac teriza ció n d e im ágenes y los tra b a jo s en los que se fundó n u e s tro m odelo
fueron p re sen tad o s. E n la seg u n d a p a r te el m odelo p ro p u e sto fue d e s a rro lla ­
do. E n la te rc e r a p a r te a p a rec iero n los re su lta d o s d e la ex p e rim en tac ió n con
el m odelo de co rresp o n d e n cia. Se h a agregado un a p é n d ice que c o n tien e la
d o cu m e n ta ció n d e los p ro g ram as p a r a co m p u ta d o ra escritos.
C om o re s u lta d o d e e s te tra b a jo po d em o s co n clu ir los siguientes logros:
• El m o d elo fue p ro b a d o en u n a a m p lia v ariedad de am b ien te s, algunos
de los cuales se p re s e n ta ro n en la e ta p a de ex p e rim en tac ió n , y en to d o s
ellos p re sen tó alg ú n tip o d e éx ito .
• P a r a e n c o n tra r la co rresp o n d e n cia se utiliz an com o p rim itiv a s segm en­
tos d e curva. Lo cual le p e r m ite elevar el nivel de ab stra c c ió n al cual se
m a n e ja n las c o rresp o n d e n cias (en co m paración con la elección de líneas
re c ta s o p u n to s ) y re d u cir los tiem p o s de p rocesam iento.
• En c u a n to los c o n to rn o s e s tá n b ien definidos y no ex iste m ucho d e ta lle
en la escena, los re su lta d o s del m odelo son buenos.
53
54
C A P ÍT U L O 4.
C O N C L U S IO N E S .
El m odelo desarrollado p re sen tó las siguientes ca rac terísticas negativas:
• Las zonas de a lto d eta lle no son bien tra b a ja d a s .
• L a seg u n d a e ta p a del proceso de co rresp o n d e n cia re s u lta b a s ta n te c a ra
en térm in o s de tiem p o de p ro cesam ien to y o b tien e resultados q u e no
se co m p a ran , en térm inos de efectividad, con este costo.
• El m odelo h a d e m o stra d o ser b a s ta n te sensible al ruido y a los efectos
del d e te c to r d e contornos. P ero este p ro b lem a puede ser m an e ja d o en
la e ta p a de preproceso y no necesariam ente significa u n defecto del
m odelo p ropuesto.
• No se m an e ja n oclusiones de p a rte s de la escena ni ocultaciones de unos
o b jeto s tra s de otros.
El m odelo desarrollado pu ed e ser m ejorado en los siguientes aspectos:
• La construcción d e un m odelo de representación tridim ensional de s u ­
perficies.
• La utilización de o tro tip o de d e te c to r d e contornos ta l com o el o p erad o r
de C anny.
• U n a descripción m ás co m p leta de las relaciones estru c tu rales en la es­
cena. C réem os que p u ed e n crearse relaciones que integren los segm entos
de curva en o b jeto s en base a su relación espacial en la im agen; es d e­
cir d ec lara r cuales segm entos de curva se en c u en tra n a rrib a , a b a jo , a
la izquierda o d erecha d e o tra . E sto p e rm itiría efectuar la c o rresp o n ­
d en c ia d e m an e ra m enos q u a n tita tiv a y m ás cu a lita tiv a. Es decir, los
procesos encam inados a reconocer la e s tru c tu ra tridim ensional en u n a
escena no p erm iten inform ación incom pleta; sin em bargo se p u e d e ir
gen e ran d o conocim iento adicional en la m ed id a que avanzam os h ac ia
el re su lta d o final.
• C on el fin de g en e rar u n siste m a de visión p o r c o m p u tad o ra es conve­
n ien te in teg ra r to d a la inform ación disp o n ib le en las im ágenes, ta l com o
las te x tu ra s , el flujo ó p tico , el m ovim iento, etc . E sto m o d eliza ría con
m ayor fidelidad el desem peño de los ojos h um anos, en donde p arece ser,
se eje c u ta n varios procesos en paralelo y varios resultados son ob ten id o s
al m ism o tiem po.
Apéndice A
La programación del modelo.
Se p re s e n ta n el c o n ju n to d e p ro g ram as utiliz ad o s p a r a ex p e rim e n ta r con el
m odelo de estereo sco p ia desa rro llad o en la p rim e ra p a r te de e s te d o cu m e n to .
Los p ro g ram as en len g u a je C que siguen e s tá n d iseñados p a ra fa c ilita r la
ex p e rim en tac ió n paso a paso, la verificación de re su lta d o s y la inco rp o rac ió n
de nuevas ideas. No se p ensó en ellos com o un p ro d u c to p a ra u n g ru p o de
usu ario s sino com o u n a h e rra m ie n ta en la b ú s q u e d a de un re su lta d o .
U n p ro g ra m a p a r a c o m p u ta d o ra tien e u n a com p lejid ad in h e re n te q u e no
p u ed e ser re d u cid o d e u n cie rto nivel de d ificu ltad . E l p ro p ó sito de e s ta p a r te
del d o c u m e n to , es p re s e n ta r los algoritm os u tiliz ad o s de la m a n e ra m ás c la ra
p o sib le , de ta l m a n e ra q u e se refleje com o las d is tin ta s p a rte s del p ro g ra m a
se van u n ien d o y p ro p o rcio n ar las re ferencias cru zad a s q u e c o n e ctan esas
p a rte s.
U tiliz are m o s las ideas de D onald E. K n u th [12] p a r a d o c u m e n ta r los p ro ­
g ra m a s. Los p ro g ram as consisten de secciones n u m era d as: p rim ero viene §1,
después §2, y así en a d e lan te. Se esp e ra que c a d a sección esté d is e ñ a d a p a r a
e n te n d e rs e p o r si m ism a. Las referencias cru zad a s in d ican com o c a d a sección
se re la c io n a con o tra s . D e e s ta m an e ra un p ro g ra m a pu ed e ser v is to com o
u n a re d q u e co n siste de pequeños nodos y conexiones e n tre nodos. El to d o
p u e d e ser en te n d id o c o m p re n d ien d o ca d a u n a d e las p a rte s y la relación e n tre
las p a rte s.
C a d a sección co m ien z a con un co m e n ta rio ac e rc a del p ro p ó sito d e la
sección o de a lg u n a p a r te re m a rc ab le del p ro g ram a. L a sección te rm in a con
código de u n p ro g ra m a en C. En m edio d e ellas p u eden e x istir o no, u n a o
m ás m acro-definiciones. Es decir, ca d a sección tie n e tre s partes:
55
56
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
• C om entarios,
• M acro-D efiniciones y
• C ódigo de len g u a je C.
Las secciones son nom bradas o no nombradas. El código en C en u n a
sección n o m b rad a com ienza con “< N om bre de la s e c c ió n > = ” y seg u irá u n a
porción de código q u e re em p la z a rá su llam ada. En el caso de u n a sección no
nom b rad a , solo se p re s e n ta rá el código de lenguaje C.
En ocasiones, u n a sección n o m b ra d a es dividida; es el caso d e las variables,
co n stan te s, y e s tru c tu ra s d e d ato s, las cuales son p re se n ta d a s en el m om ento
que creem os m ás o p o rtu n o . D espués d e la p rim era, estas secciones a p a rec erán
con la form a: “< N o m b re d e la s e c c ió n > + = ” , lo cual in d ica que su contenido
debe ser pegado a la p rim e ra sección.
P a ra facilitar la le c tu r a del código, se han to m ad o alg u n a s convenciones.
Las p alab ras reservadas com o fo r , w h ile , así com o los pro c ed im ie n to s in ­
cluidos en la lib rería e s ta n d a r com o fp r in tf, fc lo s e , ap a re c e rá n en negritas;
los identificadores a p a rec erán en itálicas y los nom bres d e p rocedim ientos en
le tra norm al. Ig u a lm e n te , algunos sím bolos han sido reem plazados:
sím bolo:
s u stitu y e a:
<
>
<=
>=
|
=
*
A
V
=
kk
ii
j
Igualm ente, algunas funciones com o la raíz cu a d rad a , h a sido s u s titu id a p o r
el sím bolo m a te m á tic o
el sím bolo * h a sido s u s titu id o p o r x cu a n d o se
refiere a u n a m u ltiplicación y algunas operaciones del le n g u a je C e s ta n d a r
com o i + + , h an sido su s titu id a s p o r i *— i + 1 .
A .l.
A .l
A L M A C E N A IM A G E N .
57
A lm a c e n a im a g e n .
El p ro g ra m a A l m a c e n a l m a g e n p e r m ite alm ac en ar la porción de m em o ria
p rin c ip a l, que co rresp o n d e a la im ag en d ig ita l, en la m em oria s e c u n d a ria de
la co m p u ta d o ra . C on el fin d e ap ro v ech a r el equipo co m p u tacio n al ex iste n te ,
la im agen se alm ac en a en la m em o ria in c o rp o ra d a a la c a rta de adquisición de
im ágenes; é sto vuelve al p ro g ra m a d e p e n d ie n te del equipo, p ero las im ágenes
son lo suficientem ente g ra n d es (768 colum nas p o r 512 hileras) com o p a r a
ju s tific a r la decisión. C om o a te n u a n te , podem os ag reg ar que si la m em o ria
del o rd e n a d o r es lo su ficien tem en te g ra n d e com o p a ra reservar un espacio
de m em o ria de 384k p a la b ra s , sin p ro b lem a , los cam bios al p ro g ra m a son
m ínim os.
1. La descripción co m ien z a m o s tra n d o las porciones principales d e u n p ro ­
g ra m a en len g u a je C , cu y a s co m p o n e n te s serán llenadas después. P o r
eje m p lo , la porción del p ro g ra m a lla m a d a < L a s co n stan te s 3 > será
re e m p la z a d a p o r u n a sec u en cia d e d eclaración de c o n sta n te s q u e co­
m ie n z a en §3.
< L o s archivos que se p re p ro ce san
2>
< L a s c o n sta n te s 3 >
< L a s variables globales 4 >
< R u t i n a “S aveM em ory” 5 >
< R u t i n a “m a in ”
6
>
2. Las ru tin a s p a ra el m an e jo d e la c a r ta de adquisición de im ágenes se
e n c u e n tra n en la lib re ría “ig selib .h ” . R u tin a s tales com o inicializar la
c a r ta de ad quisición, d ig ita liz a r u n a im agen, escrib ir u n p u n to en la
m em o ria, leer un p u n to de la m em o ria, etc . En e s ta serie d e p ro g ram as
solo se u tiliz a la r u tin a que nos in d ica la dirección de m em oria en d o nde
se e n c u e n tra la c a r ta de adq u isició n de im ágenes. T odas las ru tin a s
q u e p u d ie ra n e s ta r re la cio n ad a s con la t a r je ta se hicieron siguiendo el
m an e jo e s ta n d a r d e a p u n ta d o re s q u e p e rm ite el len g u a je C.
El archivo “s td io .h ” con tien e las ru tin a s de e n tra d a y salid a e s ta n d a r
en el le n g u a je C. P a r a m ayor inform ación c o n su ltar la d o cu m e n ta ció n
del len g u a je .
58
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
< L os archivos que se p reprocesan
2>
=
# i n c l u d e “igselib.h”
# i n c l u d e “std io .h ”
3. La im agen dig ital que m a n e ja la c a rta de adquisición tie n e dim ensiones
de 768 colum nas x 512 h ileras. C a d a pixel e s tá re p rese n ta d o p o r 8
b its, es decir tenem os 256 diferentes niveles de gris.
< L a s c o n stan te s 3 > =
# d e f i n e n um C olum nas (768)
# d e f i n e num H ileras (512)
4. La variable screen es la dirección de m em o ria en do n d e com ienza el
alm acenam iento de la im agen.
< L a s variables globales 4 > =
B y t e screen;
5. E s ta ru tin a re cu p era los d ato s de la m em o ria principal y los alm ac en a
en u n archivo.
< R u tin a “S aveM em ory” 5 > =
v o id savelm age( ñam e)
c h a r *name\
{
B y t e *s,*r;
in t j;
F IL E *f,
/<— f o p e n (ñam e, “w ” );
s*—screen',j*—0 ;
w h ilc(j< nunnColumna.s-1) {
r<—s;
fw r ite ( r,num H ileras+1,1J);
s *— s -f- n u m C o lu m n a s ; j «— j + 1;
}
fc lo se (f);
}
A .2.
R E C U P E R A IM A G E N .
numColvmnas: c o n s ta n te , §3
6.
59
niunHUcrat: c o n s ta n te , §3
icreen: v a ria b le , §4
El p ro g ra m a p rin c ip a l hac e uso de la ru tin a “a d d re s s V id e o C a rd ” , d e­
finida en la lib re ría “ig selib .h ” (ver §2 ), que nos in d ic a la posición en
m em o ria en d o n d e se e n c u e n tra la im agen. La r u t i n a p re g u n ta el no m ­
b re que se le d a r á al archivo de salida.
< R u tin a “m a in ”
6
>=
m a in () {
ch a r *n a m e ;
ch a r buffer[20];
a d d r e s s V id e o C a r d (& ; screen);
ñam e <— g e t s (& buffer);
sav e lm a g e( b uffe r );
}
savelmage: p r o c e d im ie n to , §5
A .2
screen: v a ria b le , §4
R e c u p e r a im a g e n .
El p ro g ra m a r e c u p e r a lm a g e n p e rm ite colocar, u n a im ag en d ig ita l a lm a ­
c e n a d a en u n archivo, en la m em o ria prin cip a l del o rd e n a d o r. C on el fin
de ap rovechar el eq u ip o c o m p u tac io n al ex iste n te , la im ag en se alm a c e n a en
el á r e a re serv a d a p o r la c a r ta de adquisición de im ágenes; é sto vuelve al
p ro g ra m a d e p e n d ie n te d el eq u ip o , p ero las im ágenes son lo suficie n te m en te
g ra n d es (768 co lu m n as p o r 512 h ileras) com o p a ra ju s tific a r la decisión.
C om o a te n u a n te , p o d em o s ag reg ar que si la m em o ria del o rd e n a d o r es lo
suficie n te m en te g ra n d e com o p a r a reservar u n espacio d e 384k p a la b ra s , sin
p ro b lem a , los cam bios al p ro g ra m a son m ínim os.
1. L a descripción co m ien z a m o stran d o las porciones prin cip a le s de un p ro ­
g ra m a en le n g u a je C , cu y a s co m ponentes serán llen ad a s después. P o r
ejem plo, la po rc ió n del p ro g ra m a lla m a d a < L a s co n s ta n te s 3 > será
re e m p la z a d a p o r u n a secuencia de d eclaraciones d e co n s ta n te s q u e co­
m ien za en §3.
< L os arcli ivos q u e se p re p ro ce san
2
>
60
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
< L a s c o n stan te s 3 >
< L a s variables globales 4 >
< R u tin a “retrieveM em ory” 5 >
< R u tin a “m ain ”
6>
2. Las ru tin a s p a ra el m an e jo de la c a rta de adquisición d e im ágenes se
en c u en tra n en la lib re ría “igselib.h” . R u tin a s tales com o inicializar la
c a rta de adquisición, d ig ita liz ar u n a im agen, e sc rib ir un p u n to en la
m em oria, leer u n p u n to d e la m em oria, etc . E n e s ta serie de p ro g ram as
solo se utiliz a la ru tin a que nos indica la dirección de m em o ria en donde
se en c u e n tra la c a rta d e adquisición de im ágenes. T odas las ru tin a s
que pud iera n e s ta r relacionadas con la ta rje ta se h icieron siguiendo el
m anejo e s ta n d a r de a p u n ta d o re s que p e rm ite el len g u a je C.
El archivo “s td io .h ” contiene las ru tin a s de e n tra d a y salid a e s ta n d a r
en el len g u a je C. P a r a m ayor inform ación c o n su ltar la docu m e n ta ció n
del lenguaje.
< L os archivos que se preprocesan
2>=
# i n c l u d e “igselib.h”
# i n c l u d e “std io .h ”
3. L a im agen digital que m an e ja la c a rta de adquisición tie n e dim ensiones
de 768 colum nas x 512 hileras. C ad a pixel e s tá re p rese n ta d o p o r 8
b its, es decir tenem os 256 diferentes niveles de gris.
< L a s con stan te s 3 > =
# d e f i n e n u m C olum nas (768)
^ d e f i n e num H ileras (512)
4. La variable screen in d ica la dirección de m em oria en do n d e com ienza
el alm acenam iento de la im agen.
< L a s variables globales 4 > =
B y t e screen;
5. E s ta ru tin a re cu p era los d ato s de un archivo y los tran sfie re a la m em o­
ria principal de la co m p u tad o ra.
A .2.
R E C U P E R A IM A G E N .
61
< R u t i n a “re triev eM e m o ry ” 5 > =
v o id re trie v e lm a g e (ñam e)
ch ar *nam e;
{
F I L E */;
B y te * s* r,
in t
j/«— f o p e n (ñ a m e , “tu”);
5 <— scre en ;
i ^ 0;
w h ile (j < n u m C o lu m n a s — 1) {
fr e a d (r,n u m H ile ra s + 1,1,/);
s <— 5 + num C olum nas]
j < - j + 1;
}
fclose(y);
}
numColumnas: c o n s ta n te , §3
6.
num J/ileras:constante, §3
«creen: v a ria b le , §4
El p ro g ra m a p rin cip a l hace uso de la ru tin a “a d d ressV id eo C ard ” , d e­
fin id a e n la lib re ría “igselib.h” (ver §2 ), q u e nos in d ica la posición en
m e m o ria en d o n d e se e n c u e n tra la im agen. L a r u tin a p re g u n ta el no m ­
b re d el arch iv o que co n tien e la im agen.
< R u t i n a “m a in ”
6>
=
m a in () {
ch ar
*nam e;
ch ar
bufferj 20];
a d d r e s s V id e o C a r d (& screen);
ñ a m e <— g e ts (& buffer);
re trie v e lm a g e ( 6 u/fer);
}
savelm age: p r o c e d im ie n to , §5
screen: v a ria b le , §4
62
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
A .3
G rad iente.
El p ro g ram a g r a d i e n t e se realizó con el fin de d e te c ta r los contornos sobre
la im agen. La im agen es p a s a d a p o r un filtro no-lineal que co rresp o n d e a
u n a m a triz de dim ensiones 2 x 2 . El filtro es conocido com o “R o b e rts ” y
se define com o la su m a de los valores absolutos de las diferencias e n tre las
diagonales de la m atriz.
En las vecindades de los p u n to s del con to rn o , el índice d e lum inosidad
de la luz ca m b ia b ru sc am en te; p o r ello los valores del filtro tien d en a ser
altos p a ra pu n to s del co n to rn o . El p ro g ra m a re aliza u n a clasificación d e los
pu n to s de la im agen de ac u erd o a si p erte n ec en o no al co n to rn o . U n a vez
verificado el valor del filtro p a r a u n p u n to dado, se d e te rm in a si p asa o no
un u m bral arb itra rio . Si el valor del filtro pasa de u n u m b ral, es etiq u e ta d o
com o C O N T O R N O ; si nó, es etiq u e ta d o com o F O N D O .
El valor del u m b ral es em pírico, y pu ed e cam biar de im agen a im agen.
H a sta d o nde nosotros sabem os, no ex iste u n a m an e ra a u to m á tic a d e d e te r­
m inar e s te valor.
1. L a descripción com ienza m o stran d o las porciones principales d e un p ro ­
g ra m a en len g u a je C , cuyas com ponentes serán llenadas después. P or
ejem plo, la porción del p ro g ram a lla m a d a < L a s co n stan te s 3 > será
re em p laza d a p o r u n a secuencia de declaración de c o n sta n te s que co­
m ienza en §3.
< L o s archivos que se preprocesan
2>
< L a s c o n stan te s 3 >
< L a s variables globales 5 >
< R u tin a “g ra d ie n t”
6
>
< R u tin a “m ain ” 7 >
2. Las ru tin a s p a ra el m an ejo de la c a rta de adquisición de im ágenes se
en c u en tra n en la lib rería “igselib.h” . Son ru tin a s ta le s com o inicializar
la c a rta de adquisición, d ig ita liz ar u n a im agen, escribir un p u n to en la
m em oria, leer un p u n to d e la m em oria, etc . E n e s ta serie de p ro g ram as
solo se u tiliz a la ru tin a que nos in d ica la dirección d e m em o ria en do n d e
se e n c u e n tra la c a rta de adquisición d e im ágenes. T o d as las ru tin a s
A .3.
63
G R A D IE N T 'E .
q ue p u d ie ra n e s ta r re la cio n ad a s con la t a r j e ta se hicieron siguiendo el
m an ejo e s ta n d a r d e a p u n ta d o re s que p e rm ite el len g u a je C.
El archivo “s td io .h ” co n tien e las ru tin a s de e n tra d a y s a lid a e s ta n d a r
en el len g u a je C . P a r a m ay o r inform ación c o n s u lta r la d o cu m e n ta ció n
del le n g u a je . < L o s archivos q u e se p re p ro ce san 2 >
# i n c l u d e “ig selib .h ”
# i n c l u d e “s td io .h ”
3. L a im agen d ig ita l q u e m a n e ja la c a r t a d e adquisición tie n e dim ensiones
de 768 co lu m n as x 5 1 2 h ileras.
E s ta es la p rim e ra d e varias secciones en d o n d e las c o n s ta n te s e s tá n
definidas.
< L a s c o n sta n te s 3 > =
^ d e f i n e n u m C o lu m n a s (768)
^ d e f i n e num H ileras (512)
Ver también 4.
4. El valor p a r a um bral es función de la im agen q u e se e s te p ro c esan d o ,
h a s ta d o n d e n o so tro s sab e m o s no h ay m a n e ra de d e te rm in a r su valor
p o r m edios a u to m á tic o s .
El valor d e um bral nos sirve p a r a e tiq u e ta r a un p u n to p (x , y) de la im a ­
gen de ac u erd o a dos clases, C O N T O R N O y F O N D O , d e la siguiente
m anera:
CONTORNO
FO N D O
si p ( x ,y ) > um bral
en o tro caso.
(A .l)
< L a s co n s ta n te s 3 > + =
# d e f i n e um bral (15)
^¿define contorno (255)
^ d e f i n e fo n d o (0)
5. L a varia b le screen in d ic a la dirección de m em o ria en d o n d e co m ien z a
la im agen.
64
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E LO .
< L a s variables globales 5 > =
B y t e screen;
6.
El valor del g ra d ie n te / ( x , y ) , p a ra un p u n to p ( x t y ), se d e te rm in a de
ac u erd o al filtro “R o b e rts ” por:
f ( x ) = | p {x, y ) — p (x + 1, y + 1) I + \ p ( x , y + 1) - p (x + l , y ) | (A .2)
< R u tin a “g ra d ie n t”
6>
=
v o id g ra d ie n t() {
in t i j,n iv e l, , a¿, as , ;
fo r (j <— 0;j < n um C olum nas — 2y <— j + 1) {
fo r (t <— 0;t < num H ileras — 2;t «— i + 1) {
a¡ <— • '(scree n -f num C olum nas x j -f i ) ;
a¿ <— "(¿creen -f num C olum nas x j + (* + 1));
aj 4— *(screen + num C olum nas x (j + 1)
+ t);
«— *(screen -f num C olum nas x ( j + l ) + (t + 1));
n ive l <— | ay | + | a3 - at |;
i f (n iv e l > um bral) nivel +— co n to rn o;
e l s e nivel <— fo n d o ;
*(screen + num C olum nas x j + t) <— nivel]
}
}
}
nttm C o/«m nai:con8tante, §3
*m A ra/:constante, §4
n u m /fi/eraix o n stan te, §3
eoníornoiconstante, §4
*creen:variable,§5
Jondo:c o n s ta n te , §4
7. El p ro g ram a p rin cip a l hace uso de la ru tin a a d d r e s s V i d e o C a r d , d e­
finida en la lib re ría “igselib.h” (ver §2 ), que nos in d ic a la posición en
m em o ria en do n d e se e n c u e n tra la im agen.
< R u tin a “m a in ” 7 > =
m a in () {
a d d r e s s V id e o C a r d (& s c re e n );
g ra d ie n t ();
}
gradient: p ro ce d í m ie n to , §6
«creen:variable,§5
A .4.
A D E L G A Z A M I E N T O D E L ÍN E A S .
A .4
65
A d elg a za m ien to d e lín ea s.
El p ro g ram a A d e lg a z a L in e a s to m a com o e n tra d a la im agen re s u lta n te de
la aplicación del filtro g ra d ie n te y e n tre g a com o re s u lta d o u n a im agen re p re ­
s e n ta d a p o r su esq u e le to u n ita rio . El e s q u e le to u n ita rio es u n a e s tru c tu ra
fo rm a d a de líneas con a n c h u ra d e un solo pixel. E s te a lg o ritm o fo rm a p a r te
del tra ta m ie n to a las im ágenes an te s d e la aplicación de los algoritm os de
correspondencia.
El a lg o ritm o se d esa rro lla en tre s e ta p a s ; las dos p rim eras co rresponden
al alg o ritm o de Z hang-S uen y la te rc e ra co rresp o n d e a la m ejo ra que p re sen tó
J u a n H u m b erto SO SSA en [10].
1. La descripción co m ien z a m o s tra n d o las p orciones principales de un p ro ­
g ra m a en len g u a je C , cuyas co m p o n e n te s serán llenadas después. P o r
ejem plo, la p orción del p ro g ra m a lla m a d a < C o n s ta n te s 3 > será re em ­
p la z a d a p o r u n a sec u en cia de declaraciones d e c o n sta n te s que com ienza
en §3.
< A rchivos que se p re p ro ce san 2 >
< C o n s ta n te s 3 >
< V ariables globales 4 >
< R u tin a de erosión
8
>
< R u tin a de p o s-proceso 22>
< R u tin a p rin cip a l 23>
2. Las ru tin a s p a r a el m an ejo d e la c a r ta d e adquisición de im ágenes se
e n c u e n tra n en la lib re ría “ig selib .h ” . Son ru tin a s ta le s com o inicializar
la c a r ta de ad quisición, d ig ita liz a r u n a im agen, e sc rib ir un p u n to en la
m em o ria, leer u n p u n to en la m em o ria, etc . E n e s ta serie de p ro g ram as
solo se u tiliz a la ru tin a q u e nos in d ica la dirección de m em oria en donde
se e n c u e n tra la c a rta de adquisición d e im ágenes, to d a s las ru tin a s
que p u d ie ra n e s ta r rela cio n ad a s con la ta r je ta , se hicieron siguiendo el
m an e jo e s ta n d a r d e ap u n ta d o re s q u e p e rm ite el len g u a je C.
El archivo “s td io .h ” con tien e las ru tin a s de e n tra d a y salida e s ta n d a r
en el len g u a je C. P a r a m ayor inform ación c o n s u lta r la docu m e n ta ció n
del lenguaje.
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
66
< Archivos que se preprocesan
2>
=
# in c l u d e “igselib.h”
# in c l u d e “std io .h ”
3. La im agen dig ital que m a n e ja la c a rta de adquisición tie n e dim ensiones
de 768 colum nas x 512 hileras.
E s ta es la p rim era de varias secciones en do n d e las co n stan te s es tá n
definidas.
< C o n s ta n te s 3 > =
# d e f í n e n u m C olum nas (768)
# d e f i n e num H ilerast (512)
Ver también 5 y 6.
4. La variable screen es la dirección de m em o ria en d o nde com ienza el
alm acenam iento de la im agen.
E s ta es la p rim era de varias secciones en d o nde las variables e s tá n
definidas.
<V ariables globales 4 > =
B y t e screen;
Ver también 7.
5. El p ro g ram a g r a d ie n te convirtió n u estra im agen en dos clases: C O N ­
T O R N O y F O N D O . E sto es necesario p o rq u e el a lg o ritm o d e erosión
tr a b a ja con dos clases. El valor de um bral nos sirve p a ra e tiq u e ta r a
un pixel p de la im agen, com o p erte n ec ie n te a u n a d e las dos clases de
la siguiente m anera:
CONTORNO
FONDO
< C o n s ta n te s 3 > + =
# d e f i n e um bral (100)
si p > um bral
si no
(A .3)
A .4.
6.
A D E L G A Z A M I E N T O D E L ÍN E A S .
67
Al final del alg o ritm o d e erosión, un cie rto n ú m ero de pixeles del b orde
de la im agen d eb e ser re tir a d o p a r a no in terferir con el a lg o ritm o de
seguim iento de c o n to rn o s. L a c o n s ta n te m ín im o es apro v ech a d a ac tiv a­
m en te, p a r a no ca lc u la r op eracio n e s en el á rea que de cu alquier m a n e ra
s erá rem ovida.
c C o n s ta n te s 3 > + =
# d e f i n e m ín im o ( 1 0 )
7. El valor de la varia b le éx ito, re p re s e n ta el nú m ero de p u n to s que fueron
erosionados en la ú ltim a itera ció n del algoritm o.
< V ariables globales 4 > + =
i n t éxito;
8.
El a lg o ritm o de Z h an g y S uen con la m ejo ra de Sossa ap licado sobre
u n a im agen b in a ria g a r a n tiz a un esqueleto u n itario . E l a lg o ritm o se
d esa rro lla en tre s e ta p a s .
< R u tin a de erosión
8
>=
v o id erosion()
{ in t i,j,d en sid a d ,p a tro n e s,n iv el’,
< P rim e r a e ta p a 9 >
< S e g u n d a e ta p a 10>
< T e rc e ra e ta p a 11>
}
9. L a im agen e n te ra es e x a m in a d a . P a r a ca d a pixel P \ se d e te rm in a si
p e rte n e c e a la clase C O N T O R N O ; si es así, el pixel p ( x ,y ) es erosio­
n ad o si su vec in d ad (v e r F ig. 2.3) cum ple con las siguientes c u a tro
p ropiedades:
P r o p i e d a d A . L a s u m a d e los pixeles en la vecindad de P \ q u e p e r­
te n e cen a la clase C O N T O R N O es m ayor que dos y m en o r que
seis.
P r o p i e d a d B . El n ú m e ro de p a tro n e s 01 en el co n ju n to o rd e n ad o
P2, P3 ,..., P9 es ig u al a uno.
68
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
P r o p ie d a d C . A lguno d e los pixeles P 2 ,P \,P q , p erte n ec e a la clase
FON D O .
P r o p ie d a d D . A lguno de los pixeles P4 , P6, P%, perte n ec e a la clase
FONDO.
< P rim e r a e ta p a 9 > =
fo r ( i ♦— m in im o ;i < num H ileras — m in im o \i <— i + 1){
fo r ( j <— m ín im o ',j < n u m C o lu m n a s — m ín im o ;j «—j + 1) {
i f ( m(screen + nu m C olum nas x » + j ) > um bral) {
densidad <—pro p ied a d A (j,i);
i f ( ( densidad > 2) A ( densidad < 6 )) {
p atrones *—propiedadB Q ,*);
i f (patrones = 1 ) {
i f ((p ro p ie d a d C (j,t)= 0 )A (p ro p ie d a d D (>;,t)= 0 )) {
*(screen + n u m C o lu m n a s x i + j ) <— 0;
éxito <— éxito
1;
}
}
}
}
}
}
¿eníiáaá: v a ria b le , §8
invariable, §8
m in im o x o n sta n te , §5
numHiU ras:constante,%3
propiedad A rp ro c ed im ien to , §12
p ro p ied ad C :p ro ced im ien to , §14
«creen:variable,§4
extio:variabIe,§7
;:v ariab le,§ 8
n«mCo/iimnd«:con8tante,§3
patrones: v a ria b le , §8
p ro p ied ad B :p ro ced im ien to , §13
p ro p ied ad D :p ro ced im ien to , §15
*m ¿ra/:con8tante,§6
10. L a im agen e n te ra es e x a m in a d a. P a ra c a d a pixel P\ se d e te rm in a si
p erte n ec e a la clase C O N T O R N O ; si es así, el pixel p ( z ,y ) es ero­
sionado si su vecindad (ver Fig. 2.3) cu m p le con las siguientes c u a tro
propiedades:
P r o p ie d a d A . L a su m a de los pixeles en la vecindad d e P\ que p e r­
ten e cen a la clase C O N T O R N O es m ayor que dos y m enor que
seis.
A.4.
A D E L G A Z A M I E N T O D E L ÍN E A S .
69
P r o p i e d a d B . El nú m ero d e p a tro n e s 01 en el c o n ju n to o rd e n ad o
P2, P 3 , ..., Pg es igual a uno.
P r o p i e d a d C '. A lguno de los pixeles P 2, P 4 , P8, p e rte n e c e a la clase
FONDO.
P r o p i e d a d D '. A lguno de los pixeles P 2 ,P 6 ,P 8, p erte n ec e a la clase
FONDO.
< S e g u n d a e ta p a 1 0 > =
fo r
(1 <— m in im o \i < num H U eras — m ínim o-,i <— i + 1){
f o r ( j <— m in im o ;j < n u m C o lu m n a s — m ín im o ,j <— j + 1) {
i f ( *(screen-\-num C olum nasxi-\-j)¿um bral) {
d ens i da d *—propi ed ad A (j, i);
i f ( ( densidad > 2) A ( den sid a d < 6 )) {
' patrones*—pro p ied a d
i f ( patrones = 1 ) {
i f ((propiedadC '(.;,i’) = 0 ) A (p ro p ie d a d D '(>/,i)= 0 )) {
*(screen + n u m C o lu m n a s x i -f j ) *— 0;
éxito <— éxito + 1 ;
}
}
}
}
}
}
rfenai¿aJ: v a ria b le ,§8
«:variable,§8
m in im o x o n sta n te , §5
n u m ^ i/e ra i:c o n sta n te,§ 3
propiedadA : p ro c e d í m ie n to , §12
p ro p ied a d C ':p ro ce d im ie n to , §16
«ere en: v a ria b le ,§4
exi<o:variable,§7
j:v ariab le,§ 8
num C o/tím na*:constante,§3
palrone3:variable,§8
p ro p ied a d B :p ro c ed im íen to , §13
p ro p ied a d D ':p ro ce d im ien to , §17
« m ¿ra/:constante,§6
11. L a im ag en e n te ra es e x a m in a d a. P a r a c a d a pixel Pj se d e te rm in a si
p e rte n e c e a la clase C O N T O R N O ; si es así, el pixel p ( x , y ) es erosionado
si su v ec in d ad (ver F ig. 2.3) cu m p le con a lg u n a de las siguientes c u a tro
pro p ied a d es:
70
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
P r o p i e d a d 1. T odos los pixeles P 9 ,P t ,P 6, p ertenece a la clase C O N ­
TORNO.
P r o p i e d a d 2. T odos los pixeles P3, P6, P8, p erte n ec e a la clase C O N ­
TORNO.
P r o p i e d a d 3. T odos los pixeles P ¡ ,P s ,P i, perte n ec e a la clase C O N ­
TORNO.
P r o p i e d a d 4. T odos los pixeles P-, P¿. P 4 , perte n ec e a la clase C O N ­
TORNO.
< T e rc e ra e ta p a 1 1 > =
fo r (i «— m in im o ;i < num H ileras — m in im o ;i * - i -f- 1 ){
f o r ( j t — m ín im o ;j < n u m C olum nas — m ín im o ;j <—J + 1) {
i f ( ‘ («creen + n u m C olum nas X i + j ) > um bral) {
i f (propiedad 1 (j, i) / 0 ) {
*(screen + n u m C o lu m n a s X i + j ) *— 0;
éxito <— éxito + 1 ;
}
e l s e f i f (p ro p ie d ad 2 (j,¿) 7¿ 0) {
*(screen -f n u m C olum nas x i + j ) <— 0;
éxito «— éxito -f 1 ;
.
}
e ls e { if (p ro p ie d ad 3 (.;,* )/ 0) {
*(screen -f n u m C o lu m n a s x i + j ) «— 0;
éxito <— éxito -f 1 ;
}
e ls e { if(p r o p ie d a d 4 ( j,i)/ 0){
*(screen -f- n u m C olum nas x i -f j ) <— 0;
éxito «— éxito + 1 ;
}
}
}
}
}
}
}
A .4.
A D E L G A Z A M I E N T O D E L ÍN E A S .
71
}
exí<o:variable,§7
¿ v a r ia b le ,§8
ntimCo/iJ»nna#:constante,§3
propiedad 1 ¡p ro c ed im ien to , §18
p ro p ied a d 3 :p ro ce d im ie n to , §20
icreen:variable,§4
«¡variable,§8
mínim o:c o n s ta n t e , §5
num //i7era«:constante,§3
p ro p ied a d 2 :p ro ce d im ie n to , §19
p ro p ied a d 4 :p ro ce d im ie n to , §21
«m 6ra/:constante,§6
12. V erificam os el n ú m ero d e pixeles en la vec in d ad 3 x 3 de P\ q u e p e r te ­
nece a la clase C O N T O R N O :
i n t p ro p ie d a d A ( i j )
i n t ij ;
{ i n t x ,y ,result,nivel;
result <— 0 ;
f o r (z <— t — l;x < t + \ ; x «— x -f 1 ){
f o r (y < - i - l ; y < j + l ; y * - y + 1 ){
i f (-.((* = t) A (y = .?))) {
nivel «— *(screen + n u m C o lu m n a s x y - f x);
i f ( nivel > um bral) result <— result -f 1 ;
}
}
}
r e t u r n (result);
}
num Columnas: c o n s ta n te ,§3
ícreen:variable,§4
*m 6ra/:constante,§6
13. C on ta b iliz am o s el nú m ero de p a tro n e s 01 en la vecindad de P \ :
i n t p ro p ie d a d B (iJ )
in t ij;
{ i n t v[1 0 ],z ,y ,n e x t,nivel;
v[2] <— *(screen -f n u m C o lu m n a s
u[3] <— *(screen + n u m C o lu m n a s
i?[4] <— *(screen + n u m C o lu m n a s
v[5] *— *(screen -f nu m C o lu m n a s
u[ 6 ] <— ‘ (screen + nu m C o lu m n a s
x (j
x (j
x j
x (j
x (j
— 1) -f- i);
- 1 ) 4 - (* + 1));
-f (t + 1));
+ 1) + (i -f 1));
-f 1) + i);
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
72
i>[7] <— '(sc re e n + n u m C olum nas X (j + 1) + (i - 1));
„[ 8 ] <_ *(screen + n u m C olum nas x j + (> - 1));
„[ 9 ]
*(screen + num C olum nas X ( j - 1) + (i - 1));
next «— 0 ;
fo r ( i * - 2 ; i < 9 ; i * - i + l){
if (( » [i] < um bral) A (v[x + 1] > um bral)) next <- next + 1;
i f ((t>[9] < um bral) A («[2] > um bral)) n ext <- next + 1;
r e t u r n (next)-,
}
num C o/ttm naí:constante,§3
*creen:variable,§4
«m 4r«/:constante,§6
14. Verificam os que p o r lo m enos uno de los valores P2, P 4 , P 5 sea cero:
in t propiedadC(x,y)
in t x,y]
{in t p2 ,P i,V e \
Pi *— "(screen +
p¿ *— *(screen +
p6 <— *(screen +
r e tu r n (p¿ x p4
n u m C olum nas x (y — 1) -f x);
n um C olum nas x y + ( i + 1));
n u m C olum nas X (y + 1) + x ) ‘,
x p 6)\
}
numColumnas: c o n s ta n te ,§3
<creen:variable,§4
15. Verificam os que p o r lo m enos uno de los valores P \,P $ , Pg sea cero:
in t propiedadD (x,y)
in t x,y,
{in t P4 ,P 6 ,Ps',
p¿ <— ’ (screen
Pe
*(screen
Ps
*(screen
r e tu r n ( p4 x p
+ n u m C olum nas x y + (x + 1));
4- n u m C olum nas x (y + 1) + x );
+ n u m C olum nas x y + ( i - 1));
{ x p8)\
}
numColumnas:const&nte,%3
5creen:variab!e,§4
A .4.
A D E L G A Z A M I E N T O D E L ÍN E A S .
16. V erificam os q u e p o r lo m enos uno de los valores P 2>A » P% sea cero:
i n t p ro p ie d a d C 7(£, y)
i n t j,y ;
{ in t P2 ,P 4 ,P s;
p¿ <—. *(screen + n u m C o lu m n a s x ( y — 1) + z );
p¿ <— *(screen -f n u m C o lu m n a s x y -f {x + 1));
Ps *— *(screen + n u m C o lu m n a s x y + (x — 1));
r e t u r n (p s x pÁ x p 8);
}
n«mCo/«mn a í ¡c o n s ta n te ,§3
«cree»i:variable,§4
17. V erificam os q u e p o r lo m enos uno de los valores P 2 , P&, P% sea cero:
i n t p ro p ie d a d D '( 2;, y)
i n t x,y;
{ in t P2 ,P 6 ,P 8 ',
P2 *— *(screen +
p 6 <— *(screen +
Ps *— *(screen +
r e t u r n (p 2 x p 6
n u m C o lu m n a s x (y — 1) -f x );
nu m C o lu m n a s x (y + 1) + z);
nu m C o lu m n a s x y + (x — 1));
x p 8);
}
num C o/ttm na«:con8tante,§3
*crecn:variable,§4
18. V erificam os q u e to d o s los valores P 9 , P a ,P q sea n uno:
i n t p ro p ie d a d l(:r,y )
i n t a:,y;
{ in t p 9f i P4 >Pe\
p 9! «— * (screen + n u m C o lu m n a s x (y — 1) + (z — 1));
p 9f <— (p 9f > um bral ) ? 0 : 1 ;
p¿ <— m(sc reen + n u m C o lu m n a s x y - f ( 1 + 1));
p 6 <— *(screen + n u m C o lu m n a s x (y -f 1) + x);
r e t u r n ( p 9r x p4 x p 5);
}
73
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
74
numColumnat: c o n 8 tan te,§ 3
«creen.variable,§4
umbral: c o n sta n te ,§6
19. V erificam os que to d o s los valores P3, P6, Pg sean uno:
in t p ro p ied a d 2 (x,y)
in t x,y,
{ in t j>s',V 6 ,P 8 ',
p s l <— *(screen -f n u m C olum nas x (y — 1) -f (x + 1));
ps i +— (p s r > u m 6 m / ) ? 0 : 1 ;
p 6 <— *(screen + n u m C olum nas x (y + 1) + z);
Ps *— *(screen + num C olum nas x y + ( i - 1));
r e tu r n (p3i x p 6 x p8 )\
}
nttm Co/«m na«:constante,§3
«creen:variable,§4
*m ¿ra/:constante,§6
20. Verificam os que todos los valores P$, Ps, P 2 sean uno:
in t propiedad3(ar,y)
in t x,y]
{ in t P5 ',P 8 ,P *’,
p s r <— *(screen + n u m C olum nas x (y + 1) + (x -f 1));
p$f <— (Ps1 > um bral ) ? 0 : 1 ;
ps +— *(screen + num C olum nas x y + (x — 1));
Pt *— *(screen -1-n u m C olum nas x (y — 1) -f z);
r e tu r n (p 5f x p 8 x p¿);
}
num Colum nat:conet&nte,§3
»creen:variable,§4
*m ¿ra/:constante,§6
21. Verificam os que to d o s los valores P 7, P2, P 4 sean uno:
in t propiedad4(x,y)
in t a:,y;
{ in t p 7' , p i , p 4;
p 7f *— *(screen + num C olum nas x (y + 1) + (x — 1));
p 7f <— (p 7f > um bral ) ? 0 : 1 ;
Ps <— m(screen -f n u m C olum nas x (y — 1) + 2 );
A .4 .
A D E L G A Z A M I E N T O D E L ÍN E A S .
75
P4 *— m(screen -f n u m C o lu m n a s x y -f (x + 1));
r e t u r n (p 7/ x p s x p¿)\
}
numColumnas: c o n s ta n te ,§3
«creen:variable,§4
t<m 6ra/:con8tante,§6
22. C on el fin no in terferir con el alg o ritm o de seg u im ien to d e contornos
(q u e es la sig u ie n te e ta p a en el proceso) u n c o n ju n to de pixeles del
b o rd e d e la im agen es p asa d o a la clase F O N D O .
< R u t i n a de pos-proceso 2 2 > =
v o id valida()
{ in t ij]
fo r ( i «— 0; i < num H ileras — l;t «— « + 1){
fo r (j <— Oj < 20;j <— j + 1){
*(screen + n u m C o lu m n a s x i -f j ) *— 0;
*(screen + n u m C o lu m n a s x i + ( n u m C o lu m n a s — j — 1)) <—
}
}
•
fo r (¿ <— 0; i < n u m C o lu m n a s — l ; t <— i + 1){
fo r (;'
0 \j < 20,j <- ; + 1){
*(screen + n u m C o lu m n a s X j + i)
0;
*{scrten + n u m C o lu m n a s x ( num H ileras — j — 1) + i ) <— 0;
}
}
}
numColumnas: c o n s ta n te ,§3
ntím /ft7erai:constante,§3
«creen:variable,§4
23. El p ro g ra m a p rin cip a l hace uso d e la ru tin a a d d r e s s V id e o C a r d , d e­
fin id a en la lib re ría “igselib.h” (v e r §2), q u e nos in d ica la posición en
m e m o ria en d o n d e se e n c u e n tra d efin id a la im agen.
El n ú m e ro d e itera cio n es del a lg o ritm o de erosión dep en d e de la im a ­
gen o rig in al. El proceso se c o n tin u a m ie n tra s algún pixel h ay a sido
ero sio n a d o p o r la itera ció n an te rio r. Al final u n a r u tin a co nvierte en
la clase F O N D O los bo rd e s de la im agen con el fin de no in terferir en
alg u n o s procesos del a lg o ritm o de seg u im ien to de contornos.
< R u t i n a p rin cip a l 2 3 > =
76
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
m ain(){
i n itV id e o C a rd (& s c re e n );
é x ito <— 1 ;
w h ile ( é x ito > 0 )
erosion();
valida();
}
e rosion:procedim iento, §8
valid a:p ro ced im ien to , §22
A .5
éxito: v a ria b le , §7
ícreen:variable,§4
#creen:variable,§4
E xtracción d e con torn os.
H a s ta este m om ento, la m a triz q u e alm ac en a la im agen tien e inform ación que
ca ra c te riz a a los pixeles que contiene, com o p ertenecientes a u n a d e dos clases:
F O N D O o C O N T O R N O . N u e stro propósito ah o ra es definir u n a relación que
ag ru p e los pixeles de la clase C O N T O R N O en subclases llam adas circuitos.
L a relación que buscam os d eb e e s ta r relacionada con la m orfología de los
objetos; de é s ta m an e ra, en subsiguientes im ágenes, encontrarem os la m ism a
su b clase1.
1. La descripción com ienza m o stran d o las porciones principales de un p ro ­
gra m a en lenguaje C , cuyas com ponentes serán llenadas después. P or
ejem plo, la porción del p ro g ram a llam ad a < L a s co n stan te s 3 > será
re em p laza d a p o r u n a secuencia de declaraciones de co n stan te s que co­
m ienza en §3.
< L os archivos que se p reprocesan
< L a s co n stan te s 3 >
< E s tru c tu ra s de d ato s 10>
< L a s variables globales 5 >
< R u tin a s auxiliares
6>
< R u tin a “m ain ” 41 >
2>
A .5.
E X T R A C C IÓ N D E C O N TO R N O S.
77
2. Las ru tin a s p a r a el m an e jo d e la c a rta d e adquisición d e im ágenes se
e n c u e n tra n en la lib re ría “igselib.h” . Son ru tin a s tales com o inicializar
la c a r ta d e ad q u isició n , d ig ita liz a r u n a im agen, e sc rib ir un p u n to en la
m em o ria, leer u n p u n to de la m em o ria, etc . En e s ta serie de p ro g ram as
solo se u tiliz a la ru tin a que nos in d ica la dirección de m em o ria en d o nde
se e n c u e n tra la c a r ta d e adquisición d e im ágenes. T odas las ru tin a s
q u e p u d ie ra n e s ta r rela cio n ad a s con la t a r je ta se hicieron siguiendo el
m an e jo e s ta n d a r de ap u n ta d o re s que p e rm ite el len g u a je C.
E l archivo “s td io .h ” contiene las ru tin a s de e n tra d a y salid a e s ta n d a r
en el len g u a je C. P a ra m ayor inform ación co n su lta r la d o cu m e n ta ció n
del len g u a je .
< L o s archivos q u e se p re p ro ce san 2 >
# i n c l u d e “ig selib .h ”
# i n c l u d e “s td io .h ”
3. L a im agen d ig ita l que m a n e ja la c a rta d e adquisición tie n e dim en sio n es
d e 768 co lu m n as x 5 1 2 hileras.
E s ta es la p rim e ra de varias secciones en d o nde las co n s ta n te s e s tá n
d efinidas.
< L a s co n s ta n te s 3 > =
^ ¿d efin e n u m C o lu m n a s (768)
^ d e f i n e num H ileras (512)
Ver tam bién 4, 14, 29, 30, 35.
4. Los valores de lógicos, v erd ad ero o falso, son definidos en e s ta sección.
< L a s c o n s ta n te s 3 > -f =
# d e f i n e F A L S E (0)
# d e f i n e T R U E ( 1)
5. Las v ariables m e m o y screen e x p resan dos direcciones de m em o ria. L a
dirección m e m o nos in d ica el lu g ar en donde se alm a c e n a la im agen
q u e a c tu a lm e n te se an a liz a. La dirección screen nos in d ica dos cosas:
el lu g a r en d o n d e se alm ac en an los re su lta d o s del an á lisis y el inicio de
78
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
la m em oria d e video de la ta r je ta de d igitalización; ello nos p e rm ite ver
los re su lta d o s del análisis.
E s ta es la p rim e ra de varias secciones en d o nde las variables e s tá n
definidas.
< L a s variables globales 5> =
B y t e * m e m o * sc re e n ;
Ver también 8 y 9.
6.
Las ru tin a s que con stitu y en el cuerpo del p ro g ra m a es tá n d ivididas en
las siguientes p arte s:
< R u tin a s au x iliare s
6>
=
< Inicialización d e.rpem oria de video 7 >
< S eg u im ien to de contornos 16>
< A nálisis de vecindad 31 >
< Exposición d e resultados 28>
7. Los re su lta d o s del proceso de seguim iento d e contornos son visualizados
d irec tam en te en un m onitor. E sto se logra g u ard an d o los re su lta d o s
del proceso en la m em oria de video d e la t a r j e ta d e digitalización. Al
u tiliz ar la ta rje ta , nuestro p ro g ra m a se vuelve d e p e n d ien te del eq u ip o
pero, las facilidad de visualizar los re su lta d o s y la existen c ia d e u n
bloque de m em o ria capaz de alb e rg ar u n a im agen nos in clin aro n a
to m a r e s ta decisión. Sin em bargo, si las ventajéis dejan d e e x is tir, la s
ru tin a s se h a n p ro g ram ad o p a ra que los cam bios sean m ínim os.
< Inicialización de m em oria d e video 7 > =
v o id in itM e m o ry () {
i n t i,j;
f o r ( t <— 0; i < num H ileras — 1; * <— t + l){
f o r ( j «— 0 , j < n u m C olum nas — 1; j <— j -f 1){
♦(screen + » x num H ileras + j ) «— 0;
}
}
}
A .5.
E X T R A C C IÓ N D E C O N TO R N O S.
num/A'/eroí .c o n s ta n te , §3
8.
n tim C o /u m n aíico n stan te, §3
79
*creen:variable,§5
L a v a r ia b le /n o s in d ic a el archivo en d o n d e se alm ac en arán los d esc rip ­
tores de ca d a curva.
< L a s variables globales 5 > + =
F I L E */>
9. L a v ariable nu m e ro nos in d ic a el n ú m ero de curvas que fueron encon­
tra d a s en ca d a escena.
< L a s variables globales 5 > + =
i n t num ero;
10. U n pixel o p u n to e s tá re p rese n ta d o p o r el nú m ero d e co lu m n a x y
el nú m ero de h ile ra y. E l origen se e n c u e n tra en el m arg en su p erio r
izquierdo, con direcciones positivas h a c ia la d erecha y ab a jo .
E s ta es la p rim era d e varias declaraciones de e s tru c tu ra s de dato s.
< E s tru c tu ra s de d a to s
10>
=
s t r u c t point{
i n t x,y;
};
Ver también 11, 12, 13.
11. L a siguiente e s tru c tu ra alm a c e n a c a ra c te rís tic a s im p o rta n te s d e un seg­
m en to d e re cta. L as co o rd en ad a s (x0, y 0) y (ay, y¡) son los p u n to s inicial
y final del segm ento. El ángulo del segm ento con re sp ecto a la h o ri­
zo n ta l e s tá d ad o p o r angle, la cual to m a valores e n tre 0 y n radianes;
la v ariable slope es el valor de la función ta n g e n te d e la v ariable angle.
L a co o rd en ad a (ex, cy) re p re s e n ta el ce n tro de la v e n ta n a en do n d e se
en c o n tró el segm ento.
<
E s tru c tu ra s de d a to s 10> + =
s t r u c t recta{
f lo a t x 0 , X f , y 0 ,y j,a n g le , slope;
i n t cx,cy\
};
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
80
12. El á rea en donde se define u n a v e n ta n a e s tá d e lim ita d a p o r su m argen
su p erio r izquierdo y su m arg en inferior derecho; las coordenadas (x 0, y„)
y (x /, y/) resp ectiv am en te .
< E s tru c tu ra s de d ato s 10> + =
s t r u c t w in d T y p e {
i n t x0, y 0 ,x ;, yf \
};
13. El análisis d e los contornos re cu p era los siguientes d esc rip to res de la
curva:
• L a lo n g itu d n. C a d a u n id ad re p rese n ta 5 pixeles.
• El prom edio d e dirección de la cu rv a m edia, m edido en ra d ia n es.
• L a posición del centroide. La c o o rd en ad a (cx,cy).
• Las coo rd en ad a s del p u n to inicial y final de la curva: ( x / , y ¡ ) y
(x 2 ,y * ) re sp ectiv am en te .
< E s tru c tu ra s de d a to s 10> + =
s t r u c t curve{
i n t n;
f lo a t m edia;
f lo a t cx,cy,
i n t x / , y / , x2 , y i ;
};
14. C on el fin d e no a b a n d o n a r el áre a d e la im agen, n u estro a lg o ritm o
exige q u e u n a p a r te d e los bo rd e s sea suprim ido. E ste b o rd e su p rim id o
tie n e u n a a n c h u ra d e m ín im o pixeles.
< L a s co n stan te s 3 > + =
# d e f i n e m ín im o ( 1 0 )
15. El nivel de gris q u e divide e n tre las dos clases: F O N D O y C O N T O R N O
e s ta d ado por umbral.
< L a s c o n sta n te s 3 > + =
# d e f i n e um bral (40)
A .5.
E X T R A C C IÓ N D E C O N TO R N O S.
81
16. El alg o ritm o de seg u im ien to d e contornos p ro p u e sto se b a s a en el s u ­
p u esto de q u e cu a lq u ie r cu rv a p u ed e ser a p ro x im a d a p o r segm entos de
re c ta siem p re y cu a n d o estos segm entos de re c ta sean su ficien tem en te
pequeños. C on el fin de ap lic a r este prin cip io a u n a im agen b in a ria
e x p u e s ta a ru id o definim os u n a v e n ta n a de análisis, d e n tro d e la cual
in te n ta re m o s e n c o n tra r segm entos de re cta. Las dim ensiones d e la ven­
ta n a se definen d e ac u erd o a los siguientes principios:
• Las dim ensiones d e u n a v e n ta n a deben ser suficientem ente g ra n ­
des p a r a e n c o n tra r d e n tro un nú m ero suficientem ente g ra n d e d e
pixeles com o p a r a que u n a re c ta sea a p a re n te .
• Las dim en sio n es d e u n a v e n ta n a deben ser suficientem ente p e q u e ­
ñas p a r a no in v o lu cra r m ás d e u n a r e c ta a la vez.
Las v e n ta n a s q u e se definen conform e se a n a liz a la cu rv a se tra s la p a n
e n tre ellas con el fin d e d a rle ro b u stes a la decisión de seg u im ien to d e
u n a dirección.
< S e g u im ien to d e co n to rn o s 16> =
i n t tra c k in g () {
s t r u c t w in d T y p e window[6\;
in t
ij,k ,n iv e l,n u m W indow ,num L ine;
s t r u c t p o in t
p, q, centro F ijo, centro M ovil, next\
s t r u c t r e c ta
actual,s i guíente,saveL ine[6\;
flo a t
pen d ie n te;
s t r u c t cu rv e
curva',
nu m e ro <— 0 ; j <— m ín im o
w h i l e ( j < num H ileras — ( m ín im o -f 1 )){
i <— m ín im o ;
w h i l e ( t < n u m C o lu m n a s — 1 — m in im o ){
nivel <— * (m e m o + ; x num H ileras + t);
i f (n ive l > um bral){
p .x <- i ; p .y « - j;
i f (N eig h b o rh o o d ( &¿p, & ¿actual)= TRU E ) {
<
A nálisis d e la posicion a c tu a l 17 >
}
}
82
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
><-¿ +
}
j * -j +
1;
1;
}
retu rn (n um ero);
}
curveitipo, §13
N e¡ghborhood:función, §31
num C o/um naf.constante, §3
recta-tipo, §11
num C oU m nai-.constante, §3
mtm o:variable,§5
w m H il'r*,-.c o n s ta n te , §3
point:tipo, §10
«creen:variable,§5
w indType:tipo, §12
17. C a d a posición de la im agen es evaluada p a r a d e te rm in a r o cu rren cias de
segm entos d e re c ta . U na vez en c o n trad a evidencia de que un segm ento
ex iste se le sigue en dirección de sus ex tre m o s. Al m ism o tie m p o un
co n ju n to de d escriptores de la curva son calculados. C onform e es posi­
ble, los pixeles que han sido analizados son b o rrad o s p a r a no in terferir
con otros procesos.
E l pro c ed im ie n to to m a c u e n ta de que las curvas te n g a n u n a longi­
t u d significativa. Si u n a curva no tie n e u n a lo n g itu d suficientem ente
g ra n d e, sim plem ente no se le to m a en cu e n ta. E s ta convención p e rm ite
elim inar algo del ruido p re sen te en la im agen.
Al final, los descriptores son alm acenados en un archivo p a r a que u n
proceso p o sterio r busque la co rresp o n d e n cia e n tre las curvas de dos
im ágenes.
< A n alisis d e la posición ac tu al 1 7 > =
< Inicio de cu rv a 18>
n u m L in e <— 1;
s a ve L in e[n u m L in e] <— a ctual;
< In ic io del salvaguardo de areas de v en ta n as 24>
centroF ijo *— p; centroM ovil <— centro Fijo;
p .x <— actual.x„ -f actual.ex;
p .y <— a c tu a l.y 0 + actual.cy;
q .x *— actual.Xf + actual.ex;
q .y <— a ctu a l.yj -f actual.cy;
A .5.
E X T R A C C IÓ N D E C O N TO R N O S.
83
n ext <— p \ k
2;
pen d ie n te <— actual.slope;
< S eguim iento d e la cu rv a 19>
i f (n u m L in e > 2){
< F in a l d e cu rv a 22>
< A lm acén d e d esc rip to res de la curva 2 3 >
for(A: <— 1; k < 2; k *— k + 1) D D A (saveLine[k])\
< T e rm in a salv ag u a rd o de areas de v en ta n as 2 7 >
}
actúa/: v a ria b le ,§16
DDA ¡p ro c e d im ie n to ,§28
num L tne:variable,§16
9:v a ria b le ,§16
18. U n a c u rv a com ienza
cen<rofyo:variable,§16
¿:variable,§16
p:variable,§16
íat)e¿«ne:variable,§16
ceníroA/ov»7:variable,§16
ner<:variable,§16
pen¿ien<e:variable,§16
a ser an alizada.
< In ic io d e cu rv a 1 8 > =
cu rv a .n <— 1 ;
cu rv a .m ed ia «— actual.angle\
cu rv a .ex <— p .x \ c u r v a .c y <— p.y\
ac<«a/:variaWe,§16
c«rva:variable,§16
p:variable,§16
19. U n a c u rv a h a sido d e te c ta d a . Lo que p rocede a h o ra es t r a t a r d e llegar
ta n lejos com o p o d am o s en dirección de los dos e x tre m o s d e la curva.
M ien tra s e x is ta u n a sec u en cia de pixeles en dirección d e u n ex tre m o y
no en c o n trem o s u n cam b io brusco en la dirección d e la cu rv a c o n tin u a ­
m os en el p re sen te ex te m o ; d e o tro m odo, regresam os al lu g a r d o nde
en c o n tra m o s el p rim e r segm ento y seguim os h a c ia el o tro lado.
< S eguim iento d e la cu rv a 19> =
w h ile(fc > 0 ){
i f (N e ig h b o r hood(&¿q, ¿¿siguiente) = T R U E ){
< C o n tin u a ció n del salvaguardo de areas de v e n ta n a s 2 5 >
i f ( C o n t i n u it y (a c tu a l, s ig u ie n te)){
84
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
n u m L in e <— n u m L in e + 1;
i f ( n u m L in e < 2){
saveL ine[num L ine] *— sig u ie n te;
}
e ls e D D A (siguiente);
< C o n tin u acio n de curva 20>
P
95
.
.
pioyecta.\(siguiente,centroM ovil, $¿q)\
actual *— s ig u ie n te;
centro M óvil <— p;
}
e ls e {
< T e rm in a un ex tre m o de areas de v en ta n as 26>
centroM ovil <— centro Fijo;
actual.slope <— p en d ie n te;
q <— nexí; k *— k — 1;
< T e rm in a un e x tre m o d e la cu rv a 21 >
.
}
}
e ls e {
< T e rm in a u n ex tre m o de areas de v en ta n as 26>
}
}
}
ac<ua/:variable,§16
Continuity:funcion,§36
n«m £ine:variable,§16
proyectal :p ro ced im ien to ,§ 3 7
í avecine: v a ria b le ,§16
cen<roFyo:variable,§16
D D A :procedim iento,§28
p:variable,§16
j:variable,§16
centroMovil: v a ria b le , §16
Neighborhood :fu n cio n ,§31
penitente: v a ria b le ,§16
it^meníe: v a ria b le ,§16
20. Se co n tin ú a el análisis de la curva.
cC o n tin u a c ió n de cu rv a 2 0 > =
cu rv a .n <— cu rv a .n -f- 1 ;
curva.m edia <— curva.m edia + siguiente.angle;
curva.ex *— cu rv a .ex + q.x\
curva.cy «— curva.cy -f q -y ;
A .5 .
E X T R A C C IÓ N D E C O N TO R N O S.
curva: v a ria b le ,§16
^ v a r ia b le ,§16
85
«if«íen<e:variab!e,§16
21. U n ex tre m o d e la cu rv a h a sido alc an za d o . P odem os d e te rm in a r uno
d e los p u n to s e x tre m o s d e la curva.
< T e rm in a u n ex tre m o de la c u rv a 21 > =
i f (* > 0) {
curva.x¡ <— (f lo a t)q .x ; curva.x¡ <— (flo a t)^ .y ;
}
curva:variable,§16
¿:variable,§16
^ v a r ia b le ,§16
22. H em os arriv ad o al ex tre m o final de la curva.
< F in a l de cu rv a 2 2 > =
n u m e ro *— num ero + 1;
curva.x¿ <— (flo a t)^ .x ; cu rv a .y2 <— (flo a t)^ .y ;
cu rv a .ex <— c u r v a .e x / curva.n;
c u r v a .c y <— c u r v a .c y / c u r v a .n;
cu rv a .m ed ia <— curva .m e d ia / curva .n;
curva:variable,§16
num ero:variable,§16
j:v ariable,§ 16
23. Los d e s c rip to re s de la curva: la lo n g itu d , la dirección p ro m ed io , la
po sició n del ce n tro id e y los p u n to s in icial y final son alm ac en ad o s en
un archivo.
< A lm a c é n de d e sc rip to res d e la cu rv a 2 3 > =
f p r i n t f ( /,“%d ” ,num ero);
f p r i n t f ( /,“%d ” , curva, n);
f p r i n t f ( /,“%f ” ,curva.m edia);
f p r i n t f ( /,“%f ” , curva.ex);
f p r i n t f ( /,“%f ” , curva, cy);
86
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
f p r i n t f ( / ,“% d
f p r i n t f ( / ,“% d
f p r i n t f ( / ,w% d
f p r i n t f ( / ,“% d
e«trva:variable,§16
”, cu rv a .x¡)
” ,cu rv a .xt )
” , curva. x2)
” ,curva.yg)
/v a r i a b le ,§5
numero:variabIe,§16
24. U n siste m a d e v en ta n as que se tra s la p a n es p u e s ta en fun cio n am ien to
p a ra seguir el cam ino de la curva. E ste siste m a d e ventanas nos serv irá
p a ra b o rra r, en el m om ento o p o rtu n o , los pixeles que y a fueron a n a l­
izados.
d n i c i o del salvaguardo de áreas de v en ta n as 2 4 > =
n u m W in d o w <— 1;
saveW indow (& t/;m d 0 tü[num W indow ], p)\
num W náou/:var¡abIe,§16
w>n<fotir.variable,§16
p :v ariab le,§16
8aveW indow :procedimiento,§38
25. Las áreas que corresponden a las v en ta n as uno y dos no p u ed e n ser
b o rrad as in m ed iatam en te en v irtu d del tra n s la p e que e n tre ellas e x iste.
En lu g a r de ello, h ay un corrim iento e n tre las ventanas tres, c u a tro y
cinco.
< C o n tin u ació n del salvaguardo de áreas de ventanas 2 5 > =
n u m W in d o w «— n u m W in d o w + 1;
sa.veW ináovf(& ¿w indow[num W indow ], <7 );
i f (n u m W in d o w = 5){
eraseW indow(tí;m doi/;[3]);
window[3] <— window[A\\ window[A] <— window[b\,
num W indow <— 4;
}
eraseW indow :procediniiento,§39
s&veW indow:procedim iento,§38
num W '.náou/rvariable^ie
uíin(/ou;:variable,§16
A .5 .
E X T R A C C IÓ N D E C O N TO R N O S.
87
26. C u an d o un ex tre m o de la c u rv a h a sido alcanzado, debem os e lim in ar
los p u n to s h a s ta el m o m en to h a n sido analizados p ero no bo rrad o s.
E sto incluye d e la te rc e r a v e n ta n a en a d e la n te y la m ita d de la seg u n d a
q ue a p u n ta h a c ia el e x tre m o alc an za d o .
< T e rm in a u n e x tre m o de áreas d e v en ta n as 26> =
f o r (k <— 3; k < n u m W in d o w \ k <— k -f 1){
eraseW indow (uttW ow [/]);
}
eraseW in d o w 2 ( w indow [\], window[2]);
n u m W in d o w <— 1;
erase Window ¡p ro c e d im ie n to , §39
num lVin¿ou/:variable,§16
erase W ¡ndow 2:proced¡m iento,§40
iytn<fot//:variable,§16
i:v ariab le,§ 1 6
27. Los dos e x tre m o s d e la cu rv a h a n sido alcanzados. A h o ra re s ta e lim in ar
los pixeles que h an sido an alizad o s p a r a no in te rfe rir con el an á lisis de
o tra s curvas.
< T e rm in a salv ag u a rd o de áreas d e v en ta n as 2 7 > =
for(fc «— 1 ; k < n u m W in d o w , k <— k + 1){ eraseW indow(wm í/oií;[& ]):
}
e raseW indow :procedim iento,§39
win<fow:variable,§16
t:v ariab le,§ 1 6
num lyin^ou/:variable,§16
28. E s te alg o ritm o d ib u ja u n a lín ea r e c ta sobre la m em o ria d e video, con el
fin de v isu alizar el re s u lta d o del seguim iento de contornos. Se p ro g ram ó
con el p ro p ó sito d e no hac er uso de las librerías de la ta rje ta . C on é sto
logram os q u e el p ro g ram a, no o b s ta n te ser d e p e n d ie n te del eq u ip o ,
p u e d a ser fá cilm e n te m o dificable p a r a a d a p ta rlo a o tro .
El alg o ritm o to m a com o e n tra d a s las coo rd en ad a s del p u n to in icial y
final del segm ento. C alc u la el eje de d e sp laz am ien to m ayor y c o m e n ­
za n d o desde el p u n to inicial, se in c re m e n ta un A sobre el eje de d e s p la ­
z a m ie n to m en o r d ib u ja n d o los p u n to s que van fo rm a n d o la r e c ta h a s ta
llegar al p u n to final.
88
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
v o id D D A (H neD escriptor)
s tr u c t re c ta H neDescriptor,
{ in t i j , x I ,x 2 , x I , y i ]
flo a t x ,y ,A x , A y ,l\
i <— H neD escriptor.ex \ j <— H neD escriptor.cy;
x¡ <— (m t)( lin e D e s e r ip to r .x 0) + »;
x¡ <— ( i n t )(lin e D e sc rip to r.y 0) + j \
xt +- ( i n t )(lin eD escrip to r.X f) -f
yt * - ( i n t )(lin e D escrip to r .y¡) + j ;
= x t ) A ( x , = </s ))){
/ < -| xt - x¡ |;
if(l y t ~ x¡ l> 1)1 H y t - x, |;
A x * - ( i j - x , ) / l ; A y <- (y4 - x , ) / l \
x <— x¡ + 0.5; y <— x¡ + 0.5;
fo r (i <— 1; i < (in t)/; i <— i + 1){
*(screen + num H ileras x (in t)y + ( i n t ) i ) *— 255;
x <- x + Ax-, y <- y + A y ;
}
}
}
ntim /f¿/era<:constante,§3
recta:t¡po,§10
ícreen:variable,§5
29. P a r a algunas com paraciones e n tre reales, es preciso definir u n valor real
c d e valor pequeño.
< L a s c o n stan te s 3 > -f =
^ d e f in e c (0.0001)
30. La dim ensión de la v e n ta n a que hem os definido es de 11 x 11; es u n valor
arb ita rio que pu ed e cam biar de im agen a im agen. A quí w indow Size
re p rese n ta el m áxim o valor ab so lu to que puede to m a r u n a c o o rd en ad a
d e n tro de la ven ta n a.
< L a s c o n stan te s 3 > + =
# d e f i n e w indow Size (5)
31. Sobre u n a vecindad, definida p o r un pixel que perte n ec e al co n to rn o ,
buscam os un segm ento de re c ta u tiliz an d o el m éto d o de aproxim ación
A .5.
E X T R A C C IÓ N D E C O N TO R N O S.
89
d e u n a r e c ta a un c o n ju n to de p u n to s p o r m ínim os cu a d rad o s. D espués
en c o n tra m o s los p a rá m e tro s de la re c ta q u e se define y finalm ente en ­
co n tra m o s los p u n to s final e inicial del segm ento.
< A nálisis d e v e c in d ad 31 > =
i n t N e ig h b o r h o o d ^ ,/m e)
s t r u c t p o in t *p;
s t r u c t re c ta *line;
{i n t i j , nivel, in d ex ,xr[ 5], yr[5],re suit;
f l o a t x ,y ,m ,b,xD ata[ 122],yData[ 122];
f l o a t valor A i , v a lo r B j, valor A 2 , valorB¿, error e r r o r v a lo r ,
f l o a t s u m a A b s X ,s u m a A b s Y ,s u m a X ,s u m a Y ,s u m a X Y ,
s u m a X 2 , s u m a Y 2 , cociente;
< C en so d e la v ecindad 32>
i f (in d e x > *— 5){
< A p ro x im a c io n p o r m ínim os cu a d rad o s 33>
< L im ite s del segm ento 34>
} else{ n e su /í 4- F A L S E ; }
r e t u r n (result);
point:tipo,§10
rect&:tipo,§10
32. L a z o n a q u e co rresp o n d e a la v e n ta n a es b a rrid a . Al m ism o tiem p o , la
inform ación con re sp e c to a los p a rá m e tro s d e la r e c ta que se a p ro x im a rá
son re cab a d o s.
<
C enso d e la vec in d ad 3 2 > =
in d ex <— 0
s u m a X <— 0.0
s u m a Y <— 0.0
s u m a X Y <— 0.0;
s u m a X 2 <— 0.0;
s u m a Y 2 *— 0 . 0 ;
s u m a A b s X <— 0.0; s u m a A b s Y *— 0.0;
J o r ( i +— p .y — 5; i < p .y + 5; i * - i + 1){
90
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
fo r ( j <- p.x - 5\ j < p.x + 5; j «- j + 1){
nivel «— *(memo 4- i x numHileras j);
{{(nivel > umbral){
x *- j - p .x ; y <- i - p.y;
index «— index + 1;
xjDaia [index] <— (flo at)x ; yZ)aia[ index] <— (float)y;
sumaAbsX <— sumaAbsX-\- \ x |;
sum aAbsY <— suma/lisF-}- | y |;
sum aX *— sum aX + (float)x;
sum aY <— su m a Y -1- (float)y;
sum aX Y <— su m a X Y + (flo at)(x x y);
sum aX * <— sum aX* + (flo at)(z x x );
su m a Y * «— su m a Y i + (flo at)(y x y);
}
}
}
¿.variable,§31
memo:variable,§5
<uma^4 ¿«^¡variable,§31
tumaXY-.w ariable,§31
su m a Y 2 ¡variable, §31
y:variable,§31
recta:tipo,§10
''
inder. variable,§31
nivel: variable, §31
turna A ¿a K:variable, §31
aumoX2:variable,§31
invariable,§31
yData: variable, §31
x-.variable,§31
¿variable,§31
num//i/era*:constante,§3
«uma-Y: variable,§31
»uma ^variable,§31
r£)a<a:variable,§31
«mèra/:constante,§3
33. C on el fin de a p ro x im a r u n a re c ta al co n ju n to d e pixeles en la ven ta n a,
debem os elegir u n a función a m inim izar. Hemos elegido la función que
m inim iza la d is ta n c ia de los p u n to s a la re c ta p ro p u e sta . D efinim os dos
hipótesis con resp ecto a las co o rdenadas de los pixeles que perte n ec en
al co ntorno y es tá n d en tro d e la ventana:
• E n las co o rd en ad as (X ,Y ), la p a r te X pu ed e e s ta r m al p ero la
p a r te Y es correcta.
• La p a r te Y pu ed e e s ta r m al pero la p a r te X es co rrec ta.
E n base a esas hipótesis calculam os los p arám etro s m y b (la p en d ie n te
y el cruce con el eje Y, re sp ectiv am en te ) de dos ecuaciones. La ecuación
que m in im iza n u e s tra función d e e rro r es elegida com o la re s u lta n te del
proceso.
A .5.
E X T R A C C IÓ N D E C O N TO R N O S.
< A p ro x im a ció n p o r m ínim os c u a d ra d o s
91
33 >H
cociente «— ( index X s u m a X Y - s u m a X X s u m a Y );
i f ( I cociente (> e){
va lo rA , <— ( index X s u m a Y ‘ - s u m a Y X s u m a Y )/c o c ie n te ]
valorB i <— (s u m a Y — va lo rA , x s u m a X ) /index-,
e ls e {
i f ( I s u m a X Y |< e){
if (I s u m a A b s X |< e){
va lo rA , <— 1 0 0 0 . 0 ;
valorB , *— 0 .0 ;
}
e ls e {
i f (I s u m a A b s Y |< c){
valorA ¡ «— 0.0;
valorB j <— (s u m a Y — valorA¡ x s u m a X ) /in d e x ;
}
}
}
e l s e {v a lo r A ¡ <— 1000.0;
valorB j <— 0.0;
}
}
erro r, <— 0 . 0 ;
f o r ( i «— 1 ; i < in d e x ; t <— i + 1 ){
valor * - y D a ta [i) — v a lo rA , X x D a ta [i] — valorB ,;
error, <- error, + ( valor x v a lo r )/( 1 .0 + valorA , X valorA,)-,
cociente *— ( index X s u m a X 1 — s u m a X X s u m a X );
i f ( I cociente |> e){
valorAg * ( index x s u m a X Y - s u m a X X s u m a Y ) / cociente-,
}
e \s e v a lo r A 2 <— 1000.0 ;
valorB z <— (s u m a Y — va lo rA 2 x s u m a X ) /in d e x ;
error 2 *— 0 . 0 ;
f o r ( i 4— 1 ; i < index; i <— i -f 1 ){
92
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
valor *— ( yD ata[i\ — valorAg x xD ata[i] — valorB¡>)\
error¿ <— errorg + ( valor x valor)/ ( l . O + valor A g x valorAg);
)
i f (e rro r j < errorg){
m *— valor A i',b< — valor B¡ ;
}
e ls e { m «— valorA t \ b <— valorB t ;
}
6:variable,§31
errori :variable,§31
inder: variable,§31
suma A bt invariable,§31
turna Invariable,§31
valor A i -.variable, §31
xDaia: variable, §31
cociente: variable,§31
err OT2 ¡variable,§31
m:variable,§31
i«maX:variable,§31
i>atenvariable,§31
valor B i ¡variable, §31
yDa ta:variable,§31
e x o n s ta n te, §29
•¡variable,§31
tum aA in v a r ia b le ,§31
«urnaAf invariable,§31
valor A i .variable,§31
valor Bi-. variable, §31
34. L a re c ta que se h a en c o n trad o es a c o ta d a p o r los lím ites de la v en ta n a.
C on el fin de d e te rm in a r los pu n to s ex tre m o s del segm ento, se calcula
la intersección d e la re c ta con los lím ites d e la ventana. L a v e n ta n a
tie n e dim ensiones 1 1 x 1 1 p o r lo que las intersecciones se hacen con las
re ctas: Y = 5, Y = —5, X = 5, y X = —5.
< L ím ites del segm ento 3 4 > =
index <— 1;
cociente *— m x w indow Size -f 6;
if ( | cociente |< w in d o w S ize){
xr[index] «— w indow Size; yr[index] «— cociente;
index <— index + 1;
}
.......
cociente <------m x w indow Size + 6;
i f (I cociente \< w indow Size){
xr[index] <----- w indow Size] y r [index] «— cociente;
index «— index -f 1;
}
i f f I m l > <0{
cociente <— (w indow Size — b )/m \
if(I cociente |< w indow Size) {
A .5.
E X T R A C C IÓ N D E C O N TO R N O S.
93
xr [ in d e x ] t— cociente; yr[in d ex] <— w in d o w S ize;
mrfex 4— index + 1;
}
cociente <— ( —w indow Size — b ) / m ;
i f ( | cociente |< urtWou;,í>¿.ze){
i r [ t n ¿ c i ] <- cociente; yr[index] <------- w in d o w S ize;
in d ex *— index -f 1;
}
l i n e .x 0 *— x r [ \] ;lin e .y Q *— y r[l];
l i n e .x j <— ar[2]; lin e .y j <— yr[2];
lin e .slo p e <— m;
valor *— a rc ta n (m );
if ( u a /o r < 0 .0 )v a /o r <— valor + 7r;
lin e .a n g le <— valor;
lin e .c x <—
lin e.cy <— p.y;
resu/í <- 7 7 ? t/£ ;
'
}
¿ ¡v ariab le,§31
«»»¿er: v a ria b le ,§31
7r:co n stan te
yr.variable,§31
cocieníe: v a ria b le ,§31
m :variable,§31
t/a/onvariable,§31
windowSÍ2e:const&nte,§30
í:c o n sta n te ,§ 2 9
^ c o n s ta n te
in v a r i a b le ,§31
35. P a r a p ro b a r la no v aria b ilid a d de la dirección de u n a curva, p ro ponem os
q u e las re c ta s d e v e n ta n a s vecinas ten g a n u n a diferencia de o rien ta ció n
p eq u e ñ a. Los valores de Gso y 0¡so h a n sido d ete rm in a d o s e x p e rim en ­
ta lm e n te y p u e d e n llegar a ca m b ia r de im agen a im agen.
< L a s c o n s ta n te s 3 > + =
# d e f i n e O30 (0.523598)
# d e f i n e O ]50 (2.61799)
36. P re te n d e m o s q u e las curvas q u e elijam os te n g a n la c a ra c te rís tic a de
ser a n a lític a m e n te ex p resab le s, lo cual se p u ed e tra d u c ir com o curvas
c o n tin u as. U n a de n u e s tra s h ip ó tesis de base co n siste en co n sid erar
q u e u n a cu rv a c o n tin u a , p a r te de un o b je to en la im agen, es u n a ca­
ra c te r ís tic a m o rfo ló g ica m en te invariable del o b je to ; de ta l m a n e ra que,
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
94
si tom am os o tr a im agen, no m uy d is ta n te de la p rim era, la curva se
m a n te n d rá ap ro x im a d am en te con las m ism as c a rac terísticas.
La com probación de la dirección de u n a cu rv a es u n a de las p ru e b as
fu n d a m e n tales del algoritm o. C onsiste en d e te rm in a r si la diferencia
e n tre las direcciones d e los segm entos d e re c ta son ta n peq u e ñ as com o
p a ra considerarlos com o p a r te de u n a sola curva.
i n t C o n tin u ity ( l i n e ,, linet )
s t r u c t r e c ta Une¡, lin et ;
{ f lo a t slope,radianes;
i n t fo u n d ;
slope <— (lin e, .slope — line ¡ .slope) ¡(1 .0 + line, .slope x lineg.slope);
radianes «— aictm )(slope);
i f (radianes < 0.0)radianes <— radianes + jt;
fo u n d *— ((radianes < Oso) V (radianes > 0 ¡ s a ))1 T R U E : F A L S E ;
r e t u r n (found);
}
rect&:tipo,§l 1
©iso ¡ c o n sta n te ,§35
©
30
¡co n sta n te ,§35
37. E l p ro p ó sito de e s ta ru tin a es calcular el centro de la siguiente v e n ta n a
a a n a liz ar. En base a las dos direcciones posibles de la re c ta en la
v en ta n a a c tu a l, d ete rm in a m o s cual es el p u n to m ás alejado al c e n tro
de la v e n ta n a an te rio r y e s te p u n to es n u e s tro siguiente centro.
void p ro y e c ta l (siine,p,q)
s t r u c t re c ta siine;
s t r u c t p o in t p,*q;
{
i f ( ( | p .x — (s iin e .x , + s lin e .cx ) |< 3.0)A
(I P - y — (sline.yc + siin e.cy) |< 3.0){
q .x <- s iin e .x¡ + sline.cx; qy <— s iin e .y¡ + s iin e .cy;
e ls e { q .x *— s iin e .x„ + slin e .cx ; q .y <— s iin e .y0 + s iin e .cy; }
}
A .5.
E X T R A C C IÓ N D E C O N TO R N O S.
po int:tipo,§10
95
rec ta;tip o ,§ l 1
38. Se define el á re a so b re la cual se h a tra b a ja d o y en este m o m en to no
d eb e ser b o rra d o n in g ú n p u n to .
void s a v e W in d o w (w indow ,p)
s t r u c t w in d T y p e * window,
s t r u c t p o in t p\
{
„
_
w in d o w .x0 <— p .x — 5; w in d o w .y 0 *— p .y — 5;
w in d o w .xj <— p .x -f 5; w in d o w .y¡ <— p .y + 5;
}
p o int:tipo,§10
w¡ndType:t¡po,§12
39. Se b o rr a n los p u n to s p erte n ec ie n tes a las v en ta n as que y a han sido a n a ­
lizad a s y cuyos p u n to s deb e n ser b o rra d o s con el fin de no ser to m ad o s
en c u e n ta p o r o tra s curvas.
void eraseW indow(u;m </otü)
s t r u c t w in d T y p e w indow ,;
{ i n t i,j;
f o r ( t <— w in d o w .y 0\ i < w in d o w .y f \ i <— t -f 1){
f o r ( j <— w in d o w .x0\ j < w in d o w .x j \ j *— j -f 1){
* (m e m o -f num H ileras x i j ) *— 0;
}
}
}
m em o:variable,§5
numfiileras:constante,§3
w¡ndType:t¡po,§12
40. E n v irtu d del s is te m a d e seguim iento d e curvas, en la q u e o c u rre u n
tra n s la p e con el fin de d a rle ro b u stes a la decisión de seguir un co n to rn o ,
e x is te la n ec esid ad d e b o rr a r la m ita d d e u n a ven ta n a. E s te p ro c ed i­
m ie n to se e je c u ta u n a vez p o r c a d a cu rv a, en el lugar en d o n d e fue
e n c o n tra d o el p rim e r seg m en to y en la dirección del p rim er ex tre m o de
la cu rv a.
96
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
void eraseW indow 2(ium <fotu/, w indow ^)
s t r u c t w indT ype w indow / , window^;
{ in t ij;
i n t s a v e [ll][ll];
f o r ( t <— w indow t .y 0’, i < w in d o w ¡.yj\ i <— i + 1 ){
f o r ( j <— w indow j .x 0; j < w indow / , x j \ j *— j + 1 ){
save[i — w indow t .y 0]\j — w indow l .x 0] <—
♦ (m em o + num H ileras x i + j ) \
}
}
f o r ( t <— w in d o w s.y0; t < w indow t .yj\ i <— t + 1 ){
f o r ( j «— w indow s .x 0\ j < w in d o w s .x j\j <— j +
♦(m em o -f n um H ileras x t + j ) <— 0;
}
'■
1 ){
"
}
for(* <— w indow j .y 0’, i < w indow t .y/; i <— i
1 ){
fo r(;
w indow j .x 0; j < w indow t , x j \ j <— j + 1 ){
♦ (m em o -f num H ileras x t -f j ) <—
sa ve [i — w indow I .y 0]\j — w indow l .x 0]-,
}
}
}
memo: v a ria b le ,§5
numHilcra»:c o n s ta n te ,§3
windType:tipo,§12
41. El p ro g ram a an a liz a dos im ágenes, ua ” y ub ” u n a p o r u n a. L a im a ­
gen en tu rn o es a lm ac en ad a en u n a á re a de m em oria re servada, cuya
dirección com ienza en m em o; el re su lta d o del análisis se alm a c e n a en
la m em o ria de la t a r j e ta de digitalización, cuya dirección co m ien z a en
screen; lo que p e rm ite ver el re su lta d o en u n m o n ito r especial.
L a descripción de c a d a u n a de las curvas es alm ac en ad a en el archivo
uo u tp u t2 ” y el n ú m ero d e curvas p o r im agen se g u a rd a en el archivo
tto u tp u t3 ” .
< R u tin a “m a in ” 4 1 > =
m ain Q {
A .6.
C O R R E S P O N D E N C IA .
97
F I L E V»
/ «— f o p e n ( “o u tp u t2 ’Y ‘w” );
g <— f o p e n ( wo u tp u t3 ” ,“w ” );
a d d r e s s V id e o C a r d (& ;s c re e n );
m em o *— ( B y te * )m a .\\o c (n u m C o lu m n a s x num H ileras);
r e t r i e v e l m a g e ( “a ” );
in itM e m o ry ();
num ero <—tra c k in g ();
f p r in t f ( y ,u% d ” , num ero);
r e t r i e v e l m a g e ( “b ” );
in itM e m o ry ();
num ero *—tra c k in g ();
fp rin tf(< 7,“% d ” , num ero);
fc lo se (y );
fre e (m e m o );
fclose(y);
/ v a r i a b le ,§8
memo: v a ria b le ,§5
nttm C o/um naí:constante,§3
re tr ie v e M e m o r y :p r o g ra m a
trac k in g íu n c io n , §16
A .6
initM em ory-.procedim iento, §7
numero: v a ria b le ,§9
num/íiV eraa:constante,§3
aereen: v a ria b le ,§5
C o rresp o n d en cia .
El p ro g ra m a de seg u im ien to d e c o n to rn o s h e re d a un conjunto de d e sc rip to res
de segm entos de cu rv a p a r a c a d a im agen. A p a r tir de ellos deb e m o s re c u p e ra r
la inform ación d e p ro fu n d id a d . P a r a ello proponem os un alg o ritm o d e dos
etapas:
• T om am os el c o n ju n to d e d e sc rip to res de las curvas de la p rim e ra im agen
y los co m p a ram o s con los d esc rip to res de la segunda im agen. A lgunas
curvas d e la p rim e ra im ag en te n d rá n u n a curva en la seg u n d a im agen
que les c o rre s p o n d e rá , o tra s te n d rá n varias y o tras no te n d rá n n in g u n a
cu rv a c a n d id a ta a c o rresp o n d e rles. P a ra las curvas que tie n e n p o r lo
m enos u n a c o rresp o n d e n cia, d educim os las curvas q u e re a lm e n te co­
rresp o n d en en la im ag en b a sá n d o n o s en el prom edio d e d esp laz am ien to
98
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
que observan los centroides de las curvas que son c a n d id ato s a corres­
ponder.
• Las curvas que no h an en c o n trad o su c o rresp o n d ien te son co n sid era­
das. Se investiga el efecto que tien e el c a lcu lar d esc rip to res p a ra un
co n ju n to d e curvas de la p rim era im agen al hac erla s co rresp o n d e r con
o tro c o n ju n to d e la seg u n d a im agen. El c a ra c te r explosivo de e s ta
bú sq u ed a es m in im iza d a al hac er uso de las siguientes reglas:
— Solo las curvas que cum plen un cie rto c rite rio de long itu d son
consideradas.
— Las curvas de la im agen son ag ru p ad as en varios conjuntos de
acuerdo a un criterio de proxim idad e n tre e x tre m o s de curvas.
E stos co n ju n to s k>n llam ados circuitos y re p re s e n ta n , físicam ente,
e s tru c tu ra s que idealm ente deben ex istir en los o b jeto s. Las curvas
que corresponden perte n ec en a uno de estos circuitos.
1. La descripción com ienza m o stran d o las porciones p rincipales d e u n p ro ­
g ra m a en len g u a je C, cuyas com ponentes serán llenadas después. P or
ejem plo, la porción del p ro g ram a llam ad a < C o n s ta n te s 9 > , será re em ­
p laz ad a p o r u n a secuencia d e declaraciones d e c o n sta n te s q u e com ienza
en §9.
< A rchivos “in clu d e” que se preprocesan 2 >
< C o n sta n tes 9 >
< E s tru c tu ra s d e d ato s 4 >
< V ariables globales
6
>
< R u tin a s auxiliares 3 >
< R u tin a P rin cip al 40 >
2. El archivo “s td io .h ” contiene las ru tin a s de e n tra d a y salid a e s ta n d a r
en el len g u a je C. P a r a m ayor inform ación c o n s u lta r la docu m e n ta ció n
del lenguaje.
< Archivos “in clu d e” que se preprocesan 2 > =
# i n c l u d e “s td io .h ”
A.6.
99
C O R R E S P O N D E N C IA .
3. Las ru tin a s que co n stitu y en el cu e rp o del p ro g ra m a están d ivididas en
las siguientes p arte s:
< R u tin a s au x iliares 3 > =
< R ecu p eració n de inform ación 7 >
< E s tu d io de la e s tru c tu ra
8
>
< C o rre sp o n d en cia 16 >
< C álculo d e p ro fu n d id a d 38 >
< R esu ltad o s 39 >
4. L a e s tru c tu ra “n o d e ” posee d a to s ac e rc a d e los d escriptores de los seg­
m entos de cu rv a, ay u d a s p a r a el proceso de co rresp o n d e n cia y re s u lta ­
dos:
D e s c rip to re s :
• n. L o n g itu d de la curva. C a d a u n id a d re p re s e n ta cinco pixeles.
• m edia. D irección pro m ed io de la cu rv a, ex p resad o en radianes.
• (x, y). C o o rd en a d as de la posición del ce n tro id e. E l origen del sis­
te m a de co o rd en ad as se e n c u e n tra en el m arg e n su p erio r izquierdo;
el d esp laz am ien to p ositivo en las direcciones X y Y es h ac ia la
d e re c h a y h ac ia a b a jo re sp ectiv am en te .
• ( 2^05 í/o), (xj-, *//)• C o o rd en a d as d e los p u n to s inicial y final del
seg m en to d e curva.
A yu d as:
• label. N úm ero de curva.
• A x , A y . Valor ab so lu to del d e sp laz am ien to en los ejes X y Y , de
la cu rv a con re sp ecto a su cu rv a co rresp o n d ien te .
• longG rupo. Se u tiliz a cu a n d o la cu rv a h a en c o n trad o co rresp o n ­
d e n c ia ju n to a un g ru p o de curvas, re p re s e n ta la lo n g itu d del
g ru p o . C a d a u n id ad re p re s e n ta cinco pixeles.
100
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
• circuito. Las curvas de los o b jeto s son a g ru p ad as de ac uerdo a si
algún ex tre m o de u n a c u rv a e s tá “ce rca” de u n extrem o de o tra
cu rv a diferente a ella m ism a. Id e alm en te, estos ag ru p am ien to s
d e curvas re p rese n ta n e s tru c tu ra s ind ep e n d ie n tes de los o b jeto s.
E stas e s tru c tu ra s son b a u tiz a d a s com o circuitos y son u tiliz ad as
d u ra n te el proceso de c o rresp o n d e n cia d e g ru p o s de curvas.
R e s u lta d o s :
• z. C o o rd en a d a de p ro fu n d id a d del ce n tro id e calculada.
• matched. C u rv a con la que se h a e n c o n trad o correspondencia.
• group. Se u tiliz a cuando la cu rv a h a en c o n trad o correspondencia
. com o u n g ru p o de curvas, re p re s e n ta el identificador del gru p o .
E s ta es la p rim e ra de varias secciones, en d o nde se definen e s tru c tu ra s
d e datos.
< E s tru c tu ra s de datos 4 > =
s t r u c t node{
f l o a t m edia;
f l o a t x,y,r,
f lo a t A x ,A y ;
f lo a t longGrupo;
i n t label,n,matched,group;
in t
x 0, y 0, x j , y j \
in t
circuito;
};
Ver también 5, 12, 13 y 14.
5. U n a im agen e s tá fo rm ad a p o r un c o n ju n to de curvas y el n ú m e ro d e
circuitos que estas curvas form an.
< E s tru c tu ra s de d ato s 4 > + =
s t r u c t im age{
s t r u c t n ode *nodo;
i n t inder,
};
A .6.
C O R R E S P O N D E N C IA .
101
6. Las im ágenes e s tá n re p re s e n ta d a s p o r los d esc rip to res de sus curvas.
Las variables imagen[0] e im agen[ 1] g u a rd a n inform ación de las curvas
de la p rim e ra y seg u n d a im ag en re sp ectiv am en te .
E s ta es la p rim e ra de varias secciones, en d o n d e se definen variables
globales.
< V ariables globales 6 > =
s t r u c t im age im agen[2];
Ver también 28 y 35.
7. Los d e sc rip to res d e las cu rv as son a lm ac en ad a s en el archivo “o u tp u t2 ”
p o r el p roceso d e extra cc ió n d e contornos. El n ú m e ro de curvas que se
e x tra je ro n en c a d a im agen e s tá alm ac en ad o en el arch iv o wo u tp u t3 ” .
El espacio p a r a a lm ac en ar e s ta inform ación en m em o ria p rin cip a l es
reservado al m om en to de ejecución del p ro g ram a.
< R ecu p e ra ció n de inform ación 7 > =
v o id lo a d In fo rm atio n (){
i n t i;
F I L E * f* g ;
s t r u c t n o d e m sr;
/ <— f o p e n ( “o u tp u t3 ” ,” r ” );
g <— f o p e n ( “o u tp u t 2 ” ,” r” );
f s c a n f ( / , “%</” , $¿im agen[0].index);
imagen[0].nodo*— ( s t r u c t n o d e *)
c a llo c ( imagen[Q]. ind ex + 1 ,s iz e o f( m sr));
fo r(¿ <— 1 ; t < im agen[0\.index; i <— i 4 - 1 ){
fs c a n f ( g, “% dn ,& m sr. labet) ;
fs c a n f ( g, “% d” ,& m sr. n) ;
fs c a n f ( g, “% f ’ ,& m sr.m e d ia ) ;
fs c a n f ( g, “% f ’ ,& m sr. x) ;
fs c a n f ( g, “% f ’ ,& m s r . y);
fsc a n f(< 7, “% d '\ h m s r . x 0)\
f s c a n f ( y , “% < T ,h m s r .y 0)\
fs c a n f f ^ , “% cTy¿¿m sr.Xf);
f s c a n f f g, U% ( F ,h m s r .y ¡ ) \
102
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
m sr.group <— 0; m sr.m a tch e d *— 0;
m sr.longG rupo «— 99999.9;
m sr.circ u ito «— 0;
im agen[0].nodo[i\ <— m s r ;
}
fs c a n f(/, “%d” tma</en[l]. index) ;
im agen[\].nodo<— (s t r u c t node *)
calloc(im ayen[l].m i/ea:-f l,siz eo f(m sr));
fo r (t <— 1; t < im agen[l].index; i «— t + 1){
fs c a n f( “%d” ,& msr. label);
fsc a n f( y, “%d” m sr. n);
fscanf(^ , “% f ,& m sr. media);
fs c a n f( g, “%/* msr. x);
fscanf(< 7,
m sr. y);
fscanf(< 7 , “% iT ,& m sr.x0);
fscanf(</, “% c T ,& m s r .y 0);
fscanf(< 7 , U%<T, k m s r .x j ) ;
fs c a n f (y , “% (T ,& m sr.y/);
m sr.group *— 0; m sr.m a tch e d <— 0;
m sr.longG rupo *— 99999.9;
m s r .circuito <— 0;
im ayen[l].nodo[t] <— msr;
}
fc lo s e (y);
fc lo s e (/);
}
im a;en :v ariab le, §6
nodertipo, §4
8. U n circuito es u n c o n ju n to de curvas C , tal que dos curvas d iferentes r y
5 p erte n ec en a C si e n tre alguno de sus extrem os ex iste u n a separación
de unos pocos pixeles. Es decir, las curvas adyacentes q u e h an sido
calificadas com o p e rte n ec ie n tes a p arte s diferentes del o b je to en v irtu d
de su orientación d is tin ta , son a g ru p ad as com o p e rte n ec ie n tes a u n a
sola e s tru c tu ra .
La siguiente ru tin a b u sca to d o s los circuitos que ex isten en el co n ju n to
de curvas que co n stitu y en la im agen.
A .6.
C O R R E S P O N D E N C IA .
103
< E stu d io de la e s tr u c tu r a 8 > =
v o id c r e a te S tru c tu r e (c )
s t r u c t im ag e *c ;
{
in t
i ,circuito;
circuito <— 0 ;
f o r ( i <— 1 ; i < c .i n d e x ; i *— i -f- 1 ){
i f (c .n o d ó [i\. circuito = 0 ){
circu ito <— circuito + 1 ;
u n id a d (c ,t , circuito);
}
}
c. circuitos <— circuito;
}
im age:tipo, §5
u n id a d :p ro c e d im ie n to , §10
9. P a ra p o d er se r co n sid erad a s com o p a r te de un m ism o circu ito , los ex ­
trem o s de dos c u rv as no d eben e s ta r m ás alejados d e separación pixeles.
E s ta es la p rim e r a d e varias secciones, en d o nde se definen co n stan te s.
< C o n s ta n te s 9 > =
^ ¿ d e fin e separación (5)
Ver también 11, 18, 19, 20, 21, 24, 27.
10. P a ra ca d a cu rv a , se b u sca n alg u n a s o tra s cuyos ex tre m o s e s té n p ró x i­
m os. U n c o n ju n to así c o n s titu id o d a origen a un circuito. U n circuito
es, id ea lm e n te , u n a e s tru c tu ra d e p e n d ien te de la m orfología del o b je to
y p o r lo ta n to la p o d em o s u tiliz a r en el proceso d e co rresp o n d e n cia de
curvas.
v o id u n id a d (c ,¿ , circuito)
s t r u c t im ag e *c ;
i n t i , circuito;
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
104
{
.
s t r u c t node a,b;
flo a t x , y, d i s ti , dist¿, dist3, dist¡ ;
i n t i;
i f (c .nodo[i].cireu!Ío = 0){
c.nodo[t].circu!Ío <— c ircu ito ;
a
c . no//o[í];
f o r ( j <— l \ j < c.índex-, j <— j + 1){
if ( ,- ! - ¿ ) {
6 «— c.no<io[)];
i »— (f lo a t)(a .x o — J.xo);
y <— (f lo a t)(a .y o — 4.yo);
d ist, « - V 1 X x + y X y;
x <— ( f fo a t)( a .x o — 6 .x /);
y <- (flo a t)(a .¡/o - 6.y / );
¿¿sí* <- v 'x x x + y x y;
x <— ( f l o a t ) ( a .x / - b.xo)\
y <- ( f l o a t ) ( a .y / - b.yo)\
dists <- ^ x x x + y x y ;
x <— ( f l o a t ) ( a .x / - i>.x/);
y <- (f lo a t ) ( a . y / - 6 .y / );
distj <— / x x í + y x y ;
\{((d ist¡ < separacion)\/
(d istg < separación)V
( dist3 < separación )V
(disí^ < separación ))
u n id ad (c , j , circuito);
}
}
}
}
¿m ajenrvariable, §6
u n id a d :p ro ce d im ie n to , §10
node:tipo, §4
íe paracionrconstante, §9
11. P a r a ca d a cu rv a se alm ac en arán h a s ta u n m áxim o de n u m C u r v a s A m ­
biguas posibles correspondencias.
A . 6.
C O R R E S P O N D E N C IA .
105
< C o n sta n te s 9 > + =
^ ¿ d e fin e n u m C u rva sA m b ig u a s (10)
12. La siguiente e s tru c tu ra s e rv irá p a r a a lm a c e n a r u n a posible co rresp o n ­
d e n c ia e n tre dos curvas. E s ta r á in s e rta d a en o tr a e s tru c tu ra q u e se
re ferirá a la p rim e ra im ag en y p o r lo ta n to a q u í solo n ecesitam os infor­
m ación sobre la seg u n d a im agen.
L a v ariable n u m C u rva se re fiere a la cu rv a que es p o ten c ia lm e n te corre­
s p o n d ien te. L a v aria b le d e s c r ip to r p ro p o rc io n a el d esplazam iento e n tre
las curvas que p o te n c ia lm e n te co rresp o n d e n .
< E s tru c tu r a s d e d a to s 4 > + =
s tru c t
su sp ected {
f l o a t d esc rip to r ;
in t
n u m C u rva :
}
13. U n a c u rv a p u ed e e n c o n tra r varias o tra s , q u e ten g a n d escriptores p a re ­
cidos a ella. La sig u ie n te e s tr u c tu r a d e d a to s alm ac en a estos posibles
conflictos.
<
E s tru c tu r a s de d a to s 4 > -f =
s tru c t
hilera{
s tru c t
in t
su sp e c te d item [num C urvasA m biguas-]-1];
in d ex;
}
14. L a sig u ie n te e s tru c tu ra d e d a to s sirve com o re ferencia de la p rim e ra
im agen. C a d a n odo d e la p rim e r a im ag en te n d rá u n a h ilera disp o n ib le
en la q u e se re g is tra rá n las po sib le s co rrespondencias.
<
E s tru c tu r a s de d a to s 4 > + =
s tru c t
m atrix {
106
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
s tru c t
in t
h ilera * item ;
ín d ex;
}
15. La varia b le m atch re p re s e n ta el grafo relacional q u e tien en com o nodos
dos com ponentes; es decir, los identificadores d e las curvas de la p rim era
y seg u n d a im agen cuyos d esc rip to res son p arecid o s unos con o tro s.
< V ariables globales
s tru c t
6
> + =
m a trix m atch ;
16. E l proceso de co rresp o n d e n cia se realiza en tre s eta p a s . L a p rim e ra se
b a sa en t r a t a r las corvas d e form a insolada. Se crea u n a e s tru c tu ra
relacional en la q u e, p a r a c a d a curva de la p rim e ra im agen, se conside­
ra n to d a s las curvas que p o ten c ia lm e n te le co rresp o n d e n en la seg u n d a
im agen. E n la seg u n d a e ta p a se consideran los d esp laz am ien to s de los
centroides y en base a ello se resuelven los conflictos que p u d ie ra n resul­
ta r de la p rim e ra e ta p a . P o r ú ltim o , en la te rc e r a e ta p a se calcu lan los
d esc rip to res d e co n ju n to s de curvas en base a la inform ación e s tru c tu ra l
lim a d a circuitos.
< A p a rea m ie n to > =
< Inicializacion d e la e s tru c tu ra de co rresp o n d e n cia 17 >
< A p a rea m ie n to e n tre curvas 22 >
< A p a rea m ie n to e n tre e s tru c tu ra s 23 >
< A p a rea m ie n to p o s te rio r 25 >
17. L a e s tru c tu ra m a tch es fo rm a lm e n te u n grafo relacional. E n la v aria b le
m a tc h .ite m [i\ se alm a c e n a rá el g rupo de curvas que c o rresp o n d e rán con
la cu rv a i.
< Inicializacion de la e s tru c tu ra de co rresp o n d e n cia 17 > =
v o id in itM a tc h S tru c tu re () {
s t r u c t h ilera rour,
in t i ;
m a tch .in d e x <— im agen[0].index\
A . 6.
C O R R E S P O N D E N C IA .
107
m a tch .item <—( s t r u c t h ile ra *)
c a llo c ( m atch. index-\-1 ,sizeof(roti>));
fo r (i <— 0; t < m a tc h .in d e x ; i <— i -f- 1){
m a tc h .ite m [i\.in d e x <— 0 ;
}
}
Ai7era:tipo, §13
m aícA :variable, §15
18. L a im agen tie n e dim en sio n es 768 x 512 pixeles. El n ú m ero de co lu m n as
s e rá u tiliz ad o p a r a el a lm a c e n a m ie n to d e to d a s las posibles diferencias
e n tre renglones.
< C o n s ta n te s 9 > + =
# d e f i n e num H ileras (512)
19. Los centroides de las cu rv as d e b e n te n e r la c o o rd en ad a X m uy sem e­
ja n te . E s ta d iferencia se re p re s e n ta p o r la c o n s ta n te separaciónlm agenes.
< C o n sta n tes 9 > + =
^ d e f i n e sep a ra c io n lm a g e n es (40)
20. L a diferencia e n tre el p ro m ed io d e dirección e n tre las cu rv as d eb e ser
pequeño. E s ta d iferen c ia se re p re s e n ta p o r la co n s ta n te 02o.
< C o n sta n tes 9 > + =
# d e f i n e 02O (0.34906585)
21. La diferencia e n tre las lo n g itu d e s d e las curvas d eb e ser peq u e ñ o . E s ta
diferencia se re p re s e n ta p o r la c o n s ta n te cocienteLong, que re p re s e n ta el
valor del co cien te e n tre las lo n g itu d e s de la curva m enor y la de m ayor
longitud.
< C o n s ta n te s 9 > -f =
^ ¿ d e fin e cocienteL ong (0.8)
108
22.
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
C a d a cu rv a de la p rim e ra im agen es co m p a ra d a con ca d a cu rv a de
la segunda. C u an d o los d escriptores de am bas son sim ilares conside­
ram os que h a h a b id o co rrespondencia y la reg istra m o s p a ra fu tu ra s
referencias. D espués analizam os el co m p o rta m ie n to general de los d e­
splazam ientos d e los centroides de las curvas que correspondieron; con
ésto obtenem os inform ación ú til p a ra resolver am bigüedades. Los d e ­
scrip to res utilizados en la com paración son:
L o n g i t u d . El co cien te d e la curva de m en o r long itu d con el d e m ayor
d e b e rá ser m ay o r d e cocienteLong.
D i r e c c i ó n . L a d iferen cia e n tre el prom edio de las direcciones d e b e rá
ser m en o r d e 02o grados.
D e s p l a z a m i e n t o ,d e l C e n t r o i d e . L a d iferencia e n tre la c o o rd en ad a
X d e b e rá ser m en o r de separaciónlm agenes pixeles.
<
A p a rea m ie n to e n tre curvas 22 > =
v o id m atchS ingleL ine(){
i n t » J ,in d e r,
i n t histogram a[num H ileras],m áxim o,m ínim o;
flo a t A l , A x , A y , A m e d ia , m j , m¿;
f o r (t <— 0; i < num H ileras; i <— i + l)histogram a[i] «— 0;
i *— 1 ;
w h i l e ( i < im ag en[0\. índex) {
j * - 1;
m t «— ta,n(im agen[0].nodo[i].theta);
w h ile (j < im a g en [l].in d ex ){
A l i— ( im agen[0].nodo[t].n > im a g en[l].nodo[?].n)?
( f l o a t ) im a g e n [ l] .n o d o \j].n /(ñ o a t)im a g en [0 ].n o d o [i\.n :
(f lo a t) im agen [0 ].n o ¿ o [t].n /(flo a t) im agen [l].nodo[j].n;
A x *—| im agen[0].nodo[i\.cx — im agen[l].nodo\j].cx);
A y <—| im agen[0].nodo[i\.cy — im agen[\].nodo\j].cy);
<— ta .n (im a g en [l].n o d o \j].th e ta )’,
A m e d ia <— a rctan ((m ¿ - m , ) / ( l + m , x , ^i«));
i f (A m e d ia < 0.0)
A m e d ia «— A m e d ia + 7r;
i f (A m e d ia > tt/2 .0 )A m e d ia *— 7r — Am edia;
A .6.
C O R R E S P O N D E N C IA .
109
i f ( ( A x < sep a ra cio n Im a g en es)A
( A l > cocienteL ong ) A (A m e d ia < 02o)){
i f (m a tc h .ite m [ i\.in d e x < n u m C u rva sA m b ig u a s){
m a tch .item [i].in d ex <— m a tc h .ite m [i\.in d e x + 1 ;
index <— m a tc h .ite m [i\. index;
m a tc h .ite m [i\.ite m [ in d e x ] .n u m C u rv a <— j ;
m a tch .ite m [i\.ite m [ in d e x ] .d c s c r ip to r <— A y;
h isto g ra m a [(\n t)A y ] <— h is to g r a m a [ (\n t)A y ] + 1 ;
}
}
i <-j+
}
i <— i +
1;
1;
}
m a x im o <— 0 ;
f o r ( i <— 0; t < nu m H ilera s; i «— i + 1){
i f (At5 fo 0 nam a[t] > m a x im o ) {
m a x im o <— i;
}
}
fo r
( i <— 1 ; i < m a tch .in d e x; i <— i + 1 ){
i f (m a tc h .ite m [ i\.in d e x > 1 ){
m in im o <— 9999;
f o r (j <— 1 ;7 < m a tc h .ite m [i].in d e x ; j <— j + 1 ){
i f (| (m a£cA .ftem [t].t£em [;].<iescri;rf 0 r — ( f lo a t ) m a x im o ) <
( f lo a t) m in im o ) {
m in im o <—
| ( i n t ) m a tc h .ite m [t] . d e s c r i p t o r — m a x im o |;
index <— j ;
}
}
m a tch .item [i].in d ex <— 1 ;
m a tc h .ite m [i\.ite m [ 1 ] *— ma£cA.t7em [t].t£em [tm fez];
}
}
}
“
110
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
cocíenfeLonf ¡co n stan te , §21
im a ;en :v ariab le, §6
ntim C«rva«i4m¿iV «a«:constante, §11
ieparacionImagene»:conBt& nte, §19
23.
Ai7era:tipo, §13
match:v a ria b le , §15
numHilerat: c o n s ta n te , §18
Ojo ¡c o n sta n te , §20
Los re su lta d o s d e la co rresp o n d e n cia son alm ac en ad o s con las e s tru c ­
tu ra s que contienen los d esc rip to res de las curvas. El d esplazam iento
e n tre el ce ntroide de las curvas es calculado y re g istra d o ; este d esp laz a­
m iento será ú til p a ra el cálculo de la p ro fu n d id a d .
< A p a rea m ie n to e n tre e s tru c tu ra s 23 > =
v o id m atch C o m p letG ra p h (){
i n t t ,hy
flo a t A x , A y ,
f o r ( i «— 1; i < m a tch .in d e x; i <— i + 1){
i f (m a tc h .ite m [ i\.in d e x > 0){
k *— m a tch .item [i\.item [l].n u m C u rva ;
A x <—| im agen[0\.nodo[i\.cx — im agen[\].nodo[k).cx)',
A y *—| im agen[0\.nodo[i].cy — im agen[\].nodo[k).cy);
im a g en[0\.nodo[i\.A x * - A x ;
im agen[0].nodo[i\.A y <— A y ;
im a gen[\].nodo[k].A x *— A x ;
im a g en [l\.n o d o [k].A y <— A y ;
im agen[0\.nodo[i].m atched *— k;
im a gen\\).nodo[k).m atched
t;
}
}
}
im a£en:variable, §6
24.
ma<cÀ:variable, §15
Los valores lógicos d e V erdadero y Falso son re p rese n ta d o s p o r las cons­
ta n te s T R U E y F A L S E respectivam ente.
< C o n s ta n te s 9 > + =
A . 6.
111
C O R R E S P O N D E N C IA .
^ ¿d e fin e F A L S E (0)
# d e f i n e T R U E (1)
25. Las curvas que no h a n e n c o n tra d o su co rresp o n d ien te en el p ro c eso a n ­
te rio r son tr a ta d a s . S obre c a d a circuito son to m a d a s , en c a d a caso de
ser p o sib le , g ru p o s de cu rv as a los cuales se les calculan sus d e s c rip ­
to res c o n ju n to s. Se b u s c a rá la c o rresp o n d e n cia e n tre g rupos de las dos
im ágenes y en caso de q u e los d e sc rip to res sean parecidos, se d e c la ra rá
la co rresp o n d e n cia.
<
A p a rea m ie n to p o s te rio r 25 > =
v o id p o s tM a tc h in g () {
i n t m ,i ;
i n t v[num C urves-\-\\\
f o r (¿ <— 1 ; i < im a g e n [0 ].circu ito s ; i <— i +
1 ){
77i <— 1;
w h i l e ( 77i < 3){
i f (initV ectorl(& ;v[ 0 ], 77z,¿ )= T R U E ) {
subP ostM atch(& :t;[0], resto ¡ , m );
}
771 «— 771 + 1;
}
}
}
im asercvariaW e, §6
resto j ¡v aria b le, §28
¡n itV ec to rl¡p ro c ed im ien to , §26
su b P o stM a tch rp ro ce d im ie n to , §29
n u m C urveiivariable, §27
26. S obre la p rim e ra im agen, se to m a n las p rim eras m curvas del circuito
k. E s te a lg o ritm o tie n e u n a co m plejidad m uy elevada en térm in o s
de tie m p o de cálculo; p a r a re d u cirlo tom am os solo las curvas que so­
b re p asen c ie rta lo n g itu d .
in t
in t
initVectorl(u,77i,A;)
*v,m ,k\
112
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
in t
i ,bon]
restoi <— 0 ;
f o r (t <— 1 ; t < im agen[0\.index] i «— t + 1 ){
i f ((im agen[0\.nodo[i\. circuito = k )A
(im agen[0],nodo[i\.m atched = 0 )){
i f (im agen[0\.nodo[i\.n > 5){
restoi «— restot + 1 ;
vector¡[restoi) «— t;
}
}
}
i f ( restoj > m ){
fo r (t <— 1 ; t < restoj ; t ♦— * + 1 ){
v[i]
(t '< m )? T R U E : F A L S E ;
}
6 on
<- r a i / F ;
}
e ls e 6 on <— F A L SE ]
r e t u r n (bon)]
im ayen:variable, §6
resto j .-variable, §28
vector¡ ¡ variable, §28
27. E l n úm ero m áxim o d e curvas que se p e rm ite p o r im agen es igual a
num C urves.
< C o n sta n tes 9 > + =
# d e f i n e n u m C u rve s (200)
28. Las variables q u e se p re sen tan en e s ta sección se u tiliz an en el proceso
de co rresp o n d e n cia de circuitos. Las variables vector¡ y vector* tie n e n
restoj y restog valores significativos respectivam ente. La varia b le resto¡
y restog re p rese n ta n el n ú m ero de curvas en el circuito.
< V ariables globales
in t
6
> + =
vector ¡[n u m C u rves + 1], vector2[num C urves + 1], resto ¡ ,r e s t o 2]
num C*rv eí:co n sta n te , §27
A .6.
C O R R E S P O N D E N C IA .
113
29. Un vector d e lo n g itu d n ' es recibido. R ep re sen ta las curvas d e un cir­
cuito. La v a ria b le m in d ic a cu a n to s elem entos del circuito son utilizados
p a ra ca lc u la r los d esc rip to res. El nú m ero de com binaciones e s tá d ado
por:
(A .4)
A l g o r i t m o . D a d o u n arreglo v u n idim ensional d e lo n g itu d n ', con
elem entos 1 en las p rim e ra s m posiciones a la izq u ierd a y el re sto Os,
c a lcu lar el c o n ju n to C d e com binaciones de n! to m a n d o m .
• Si n ' = m , e n to n c es ten e m o s u n elem ento de C .
• Si m = 1, en to n c es ten em o s un elem ento de C y te n d re m o s n ' — 1
c o rrien d o u n e le m e n to del vec to r h a c ia la derecha.
• El c o n ju n to C se fo rm a con los re su lta d o s de a p lic a r el alg o ritm o
con los ú ltim o s n! — 1 elem entos y con los prim eros n ' — 1 elem entos.
v o id s u b P o s tM a tc h (v , n \ m )
i n t * v , ni, n'\
{
in t
i ,a[num C urves-\-1];
f o r (t <— 1 ; t < resto 1 ; t «— i + l)a[¿] <— v[i’];
o rd e n a r(& a [ 0 ], r e s to ¡ , n ', m );
i f ( n 1 = m ){
p o s tM a tc h in g l(& a [0 ]);
e ls e {
i f (771=1) {
i <- 1;
w h i l e («' < n '){
p o stM a tc h in g l(& a [0 ]);
s h ift(& a[0 ], r e s to j, n! — ¿);
• «- * +
}
1;
}
e ls e {
su b P o stM a tc h (& a [0 ], v! — 1, m — 1);
114
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
su b P o stM a tc h (& a[0 ], n ' — 1, m );
}
}
}
n*m C *rve<:constante, §27
p o stM a td iin g l:p ro ce d im ie n to , §30
shift-.procedim iento, §33
orden& riprocedim iento, §34
retioj ¡variab le, §28
su bP oatM atch:procedim íento, §29
30. S obre las curvas que no h a enc o n trad o co rrespondencia en el proceso
an te rio r son tra ta d a s . S obre ca d a circuito son to m ad as, en c a d a caso
de ser posible, g ru p o s de curvas a los cuales se les calcu lan sus d escrip­
to res conjuntos. Se b u s c a rá la co rrespondencia e n tre g ru p o s de las dos
im ágenes y en caso de* q u e los descriptores sean parecidos, se d ec lara rá
la correspondencia.
v o id p o stM atch in g l(iü )
i n t *ur,
{
in t
in t
m, t ;
v[num C urves+ l];
f o r ( i ♦—1 ; * < im a g en [\].circu ito s; * «— t + 1 ){
77i ♦— 1 ;
w h ile ( 77i < 3){
i f (in itV ec to r 2 (& r[ 0 ], 77i,t )= T R U E ) {
su b P o stM a tc h l(iü ,& i;[0 ], restog, m );
}
m *— m + 1;
}
}
}
ím a^enivariable, §6
TC8Í02 ¡v ariab le, §28
in itV ector2:procedim iento, §31
subPostM atchl ¡p ro c ed im ien to , §32
n*mC%roeí:variable, §27
31. Sobre la segunda im agen, se to m an las p rim eras m curvas del circuito
k. E ste algoritm o tie n e u n a com plejidad m uy elevada en térm in o s
A .6.
C O R R E S P O N D E N C IA .
115
de tiem po de cálculo; p a r a re d u c irla tom am os solo las curvas que so­
brepasen c ie rta lo n g itu d .
in t
in t
initVector2(ü,m,A:)
* v,m ,k;
{
in t
i ,bon;
restog <— 0;
f o r (t «— 1; t < im a g e n [\).ín d e x ; i <— i + 1){
i f ((im a g en [\].n o d o [i\. circuito = k )A
(im ag e n [l].nodo[¿].m a¿cA e(¿ = 0)){
i f (im a g e n [l].n o d o [i\.n > 5){
resto2 «— resto2 + 1;
vector2 [resto2\ <— i\
}
}
}
i f ( resto2 > m ){
f o r ( i ♦— 1; t < resto2 ; i <— i + 1){
v[¿]
( i < m y .T R U E : E 4 ¿ S £ ;
}
bon <- 77? M ?;
}
e ls e bon *— F A L S E ;
r e t u r n (bon);
ím asen :v ariab le, §6
rcí<o2 ¡v a ria b le , §28
vector2 ¡v ariab le, §28
32. U n vector de lo n g itu d n! es re cib id o . R ep re sen ta las curvas d e u n cir­
cuito. La v aria b le m in d ic a c u a n to s elem entos del circuito son utilizados
p a r a ca lcu lar los d e s c rip to re s . El n ú m ero de com binaciones e s tá d ad o
por:
(í )
(A-5)
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
116
A lg o r it m o . Dado un arreglo v unidim ensional de longitud n', con
elem entos 1 en las primeras m posiciones a la izquierda y el resto Os,
calcular el conjunto C de com binaciones de n ' tom ando m .
• Si n' = m , entonces tenem os un elem ento de C .
• Si m = 1, entonces tenem os un elem ento de C y tendrem os n' — 1
corriendo un elem ento del vector hacia la derecha.
• El conjunto C se forma con los resultados de aplicar el algoritm o
con los ú ltim os n '—1 elem entos y con los primeros n '—1 elem entos.
v o id subP ostM atchl(u ), v , n', m)
in t * w ,* v , n', m;
1
{
in t
i ,a[num C urves-\-\\,
fo r ( i <— 1; < < res/o*; i «— ¿ + 1 )a [*] <—
ordenar(&a[0], resto¡, n', m);
i f (n' = m ){
try(u;,¿a[0]);
}
e ls e {
i f ( m = l) {
i * - 1;
w h ile (i < n'){
try(ui,& a[ 0 ]);
shift(& o[0], r e s to i, n' — i);
¡ -
i +
1;
}
}
e ls e {
subPostM atchl(«;,& :a[0], n ' — 1, m — 1);
su b P ostM atchl(tü,& a[0], n' — 1, m);
}
}
A.6.
117
C O R R E S P O N D E N C IA .
numCurvcs:c o n s ta n t e , §27
Tcsto2 ¡v aria b le, §28
subPostM atchl ¡ p ro c e d im ie n to , §32
o rd cn ar:p ro c ed im ien to , §34
sh ¡ft:p ro ce d im ie n to , §33
try :p ro c e d iin ie n to , §36
33. E ste p ro c e d im ie n to re a liz a un co rrim ie n to h ac ia la d erech a , del 1 m ás
a la d erech a , en el v e c to r q u e in d ica las curvas p re sen tes en c o rre sp o n ­
d en c ia en el c o n ju n to .
v o id
in t
sh ift(v ,n ,/)
{
FA L S £ :c o n sta n te , §24
TRUE:c o n s ta n te , §24
34. E ste p ro c e d im ie n to se a se g u ra q u e un vector v de lo n g itu d n te n g a m
unos en su s p rim e ra s n ' posiciones.
v o id o rd e n a r( v , n , n ', ra)
i n t * v , n , n ', m ;
in t
i
k <- 0;
f o r ( i <— 1; i < n ;; t <— i + 1) {
i f («[n-i + l ] = r a H E ) {
A: <— A: H- 1;
}
i f ( k ¿ m ){
f o r (i <— 1; i < m ; i <— i + 1){
v[n - n ' + i) * - T R U E ;
}
v[n — n')
FALSE;
118
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
FALSE:c o n s ta n te , §24
TTtCZ&constante, §24
35. L a varia b le n u m ero G ru p o nos sirve de consecutivo p a ra e x p resar cual
es el siguiente g ru p o d e curvas, en el proceso de co rresp o n d e n cia de
co n ju n to de curvas, q u e se form a.
< V ariables globales
in t
6
> + =
num eroG rupo;
36. Los valores descriptivos de dos grupos de curvas son calculados; si e s tá n
a rrib a d e cierto u m b ral se d e te rm in a si son m ejores q u e los obten id o s
p re v ia m en te p a ra las curvas q u e in teg ra n el grupo. D e ser así la corres­
p o n d en c ia se acep ta.
Los d esc rip to res utilizados en la com paración son:
L o n g i t u d . El cociente d e la cu rv a de m enor lon g itu d con el d e m ayor
d e b e rá ser m ayor d e cocienteLong.
D i r e c c i ó n . La diferencia e n tre el prom edio de las direcciones d e b e rá
ser m enor a 9 20 g rados.
D e s p la z a m i e n t o d e l C e n t r o i d e . La diferencia e n tre la c o o rd en ad a
X d e b e rá ser m en o r d e separacionlm agenes pixeles.
v o id try(«;,ü)
i n t *tv* v ,
{
i n t t, xn u m ¡ , xnum g, n , good, k , m atch ¡ , m atchg, grupo;
f lo a t xth e ta ¡ , xcentr¡ , ycentr¡ ,
, m *,
xthetag, xcentrg, y c e n tr j,
A l , A x , A y } A th e ta ;
xthetai <— 0 . 0 ; xc en trj <— 0 . 0 ; ycentr¡ <— 0 . 0 ;xnum ¡ «— 0 ;
f o r (k «— 1 ; k < r e s to l ; k *— k + 1 ){
i f {w [k\= T R U E ) {
i <— vector¡ [A:];
n <— xn u m ¡ ;
xn u m ¡ + <— im agen[0\.nodo[i\.n;
xthetai
( xtheta¡ x n + im agen [0 \.n o d o [i\.th eta x
im agen[0\.nodo[i\.n)/ xn u m ¡ ;
A.6. C O RRESPO N D EN C E.
119
xcen ir, *— (im agen[Q \.nodo[i\.cx x im a^en[0].n<xio[i].n + xcentr, x
n )/x n u m t ;
ycentri *— (i'm tr(/en[0].noifo[t].q/ x im ayen[0].no<io[j].n -f ycentr, x
n ) /x n u m ,;
}
}
xthetag <— 0 .0 ] xcentrg <— 0.0; ycentrs *— 0.0; xnum g <— 0;
f o r (k «— 1; k < restog] k <— k + 1){
i f (v[k]= T R U E ) {
i <— vectorg[k]]
n *— x n u m g ;
xnu m g -f- <— im a^en[l].n<xfo[i].n;
xthetag *— ( xthetag x n + im agen[\].nodo[i).thetax.
im a g e n \\\.n o d o [i\.n ) / xnumg]
xcentrg <— ( im a g en \\\.nodo[x\.cx x tm a^en[l].no(/o[i].n -f- xcentrz x
n ) / xnum g]
ycen tr2 <— (im a 5 en[l].noif«?[t].q/ x im apen[l].no<fo[t].n + ycentrz x
n ) / xnum g]
}
}
/Ax <—| xcen tri — xcentrg |
m / <— x th eta i] mg <— xthetag
A th e ta <— a r c ta n ( ( m 2 — m ; ) / ( 1 + m / x m?))
if ( A th e ta < 0 .0)A th e ta + <— n
i f ( A th e ta > p i/2 .0 )A th e ta <— it — A th e ta
A l «— ( x n u m i > xn u m g )? ( f lo a t) xnu m g /( f lo a t) x n u m / :
( f lo a t) x n u m ;/( f lo a t) x n u m i
if ( ( ¿ x < 30.0) A
< 0fO)A
(¿4/ > cocienieLon<7 )){
<— 1 \ good <— T R U E ]
w h ile (( k < r e s to i) A (good = T R U E )){
if («> [*]= T R U E ){
i <— vector¡[k]]
m a tch i <— *;
i f (tma<7 en[0 ].n<xfo[i].error > xn u m j)g o o d *— F A L SE ]
}
120
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
k<-k +
1;
}
Jt <- 1 ;
w h ile ((k < re sto t) A (good = T R U E )){
H (v [k]= T R U E ) {
i «— vector¡[k];
matchg <— i;
i f ( im agen[l].nodo[i].error > xn u m t )good <— F A L S E ;
}
k *- * +
1;
}
i f (good= T R U E ) {
A y <—| ycentr¡ — ycentrt |;
g ru p o *— imagen[0].nodo[m atch¡].group;
f o r (k <— 1 ; k < imagen[0].index; k «— i +
i f ( im agen[0].nodo[A].group = g ru p o ){
■im agen[0].nodo[k].g roup <— 0 ;
}
}
f o r (k «— 1 ; k < im agen [I], index] k *— k +
i f ( imagen[ 1 ] . nodo[k] .g ro u p = g ru p o ) {
im agen[l].nodo[k].g roup <— 0 ;
1 ){
1 ){
}
}
* « - 1;
w h i l e (k < r e s to j){
i f (t^ k ] = T R U E ) {
» <— vector¡[k]',
im agen[0].nodo[i\.error *— x n u m ¡ ;
im agen[0\.nodo[i].g roup <— num eroG rupo;
im a g en [0].nodo[t].zlz <— A x;
im agen [0].notfo[i].^y <— A y;
}
¿ <— A: + 1 ;
}
* «-
1;
A .6.
121
C O R R E S P O N D E N C IA .
w h i l e ( k < restog){
i f (v[k]= T R U E ) {
i <— ve cto r2[k]]
im a g en [\].n o d o [i\.e rro r <— xn u m z \
im agen[\].nodo[i].group <- nu m e ro G ru p o ;
im a g e n [\].n o d o [i\.A x <— A x;
ím a^en[l].noáo[t].^y «— Ay;
}
fc <—
fc +
1;
}
n u m eroG rupo <— num eroG rupo + 1;
}
}
}
coc¿en<eLonS:c o n s ta n te , §21
numero G ru p o .co n sta n te, §35
resto j ¡v aria b le, §28
separacio n lm ag en es.co n stan te, §19
T R U E :c o n stan te, §24
ve ctor2 ¡v aria b le, §28
imagen: v a ria b le , §6
¿ ¡c o n sta n te , 3.141592...
resto2 -.variable, §28
02o :c o n sta n te , §20
vectorj ¡v aria b le, §28
37. E s te p a r á m e tro es to m a d o de las especificaciones de o p eracio n de la
len te que u tiliz am o s p a r a to m a r las im ágenes.
<
C o n s ta n te s 9 > + =
^ d e f i n e d is ta n c ia F o c a l (50)
38. E n caso de e x is tir c a lib ració n co rresp o n d e rá a la ecuación:
z = f x dAy
(A .6)
D onde / es la d is ta n c ia focal, d re p re s e n ta la sep a rac ió n e n tre las
im ágenes al m o m en to d e to m a r las fotos y A y re p re s e n ta el d esp laz a­
m ien to de los p u n to s en su co o rd en ad a Y .
<
C álculo d e p ro fu n d id a d 38 > =
122
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
v o id calcu leD e p th () {
in t i ;
for (i <— 1; «•< imagen[0].índex; i «— t + 1){
imagen[0].nodo[i].cz ;
(d is ta n c ia F o c a l x s ep a ra c io n Im a g en e s)/(im a g en [0 \.n o d o [i\.A y);
}
}
dittanciaFocai.constante, §37
teparacionlm afenes:con8tante, §19
imaf emvariable, §6
39. Los re su lta d o s del proceso d e co rrespondencia son alm ac en ad o s en un
archivo. Los re su lta d o s m u estra n : la curva d e referencia, su co rresp o n ­
dencia, y en caso de e x is tir calibración, la p ro fu n d id a d d el centroide.
T am bién se incluyen los re su lta d o s cuando se h a n to m a d o g ru p o s de
curvas; en e s te caso, la p ro fu n d id a d corresponde al c e n tro id e form ado
por el c o n ju n to d e d esciptores.
La pro fu n d id a d d e los p u n to s de la cu rv a puede ser ig u alm en te e x tra íd a ;
p ero solo ten íam o s a n u e s tro alcance el núm ero que co rresp o n d e a la
co o rd en ad a de p ro fu n d id a d lo cual no clarificaría los re su lta d o s.
< R esultados 39 > =
v o id
{
in t
saveInform ation()
i ,grupo,lim ite j ;
f *— f o p e n ( “o u t p u t l ” , Mw” );
f p r in t f ( f ,w I M A G E N ” );
f o r (t «— 1 ; t < im agen[0].index; i «— ¿ + 1 ){
i f ((im agen[0].nodo[i].m atched ^ 0)A
(im agen[0].nodo[i].group = 0 )){
f p r i n t f ( / , wc u r v a : % d V m atch : % d V grupo : % d V z : % / n ” ,
t, im agen[0\.nodo[i].m atched, im agen[0].nodo[i\.group,
im agen[0].nodo[i].cz);
}
}
lim ite *— 0 ;
'
'
A .6.
C O R R E S P O N D E N C IA .
123
f o r (¿ *— 1 ; * < im agen[0\.index] i *— i + 1 ){
grupo <— im agen[0\.nodo[i].group;
i f ( ( im a g en [0 \.n o d o [i\.m a tch ed ^ 0)A
(grupo > lim ite ) ) {
f p r i n t f ( f ,“ grupo:”)\
fo r ( j <— 1 ] j < im a g e n [0].index] j *— j + 1 ){
i f ((tm ayen[0].no</o[;].m a¿c/ie<f ^ 0)A
(tm a ^ e n [ 0 ].n(M/o[7].(/roup = ^7'u/jo)){
f p r i n t f ( f , “% d ” j ) ;
}
fo r
}
...........................
(j
l ; j < im a g e n [l\.in d e x] j *— j -1- 1 ){
i f ((im a g en [l].n o d o [j].m a tc h ed ^ 0 )A
(im a g e n [\].n o d o \j]. g ro u p = yrwpo)){
f p r i n t f ( f ,“% d ” J ) ;
}
}
f p r i n t f ( f ,“ % f ” ,¿m ayen[0].not/o[¿ ].cz);
lim ite *— grupo]
}
}
f c lo s e (f);
}
0
»Tna en:variable,
§6
40. Las curvas son re c u p e ra d a s de un archivo hered ad o p o r el p roceso
de seg u im ien to de co n to rn o s, u n a vez re c u p e ra d a esa inform ación se
p ro c ed e a c o n s tru ir las relaciones e s tru c tu ra le s e n tre las curvas de las
im ágenes.
L a co rresp o n d e n cia tie n e u n a e ta p a en d o nde se p re te n d e in v o lu cra r
c a d a cu rv a de la p rim e ra im agen con ca d a u n a de las curvas d e la
seg u n d a im agen. Las am b ig ü ed a d es son re su eltas en base a la te n d e n c ia
de las curvas c a n d id a ta s a co rresp o n d e r.
P a r a las curvas que no e n c o n tra ro n co rresp o n d e n cia se p ro p o n e un
alg o ritm o en el q u e, b asá n d o n o s en ca ra c te rís tic a s e s tru c tu ra le s de los
A P É N D IC E A . L A P R O G R A M A C IÓ N D E L M O D E L O .
124
o b jeto s en las im ágenes, se calculan d esc rip to res p a ra conjuntos de
curvas; estos d escriptores son som etidos a u n proceso de co rresp o n ­
d e n c ia d o n d e los m ejores pares son los q u e sobreviven.
P o r ú ltim o , si existe u n proceso de calib ració n la pro fu n d id a d del cen­
tro id e es calculada.
< R u tin a P rin cip al 40 > =
m a in () {
num ero grupo «— 1;
lo ad In fo rm atio n ();
c re a te S tru c tu re (& imagen[0\ );
create S tru c tu re(& w ia < 7en[l]);
in itM a tc h S tru c tu re ();
m atchS ingleL ineQ ;
m atch C o m p letG ra p h Q ;
p o stM atch in g ();
ca lcu leD e p th ();
sav elnform ationQ ;
■
}
calculeDepth:procedimiento, §38
matchCompletGraphrprocedimiento, §23
imayenivariable, §6
n«meroGr«po:variable, §35
s&velnform&tion:procedimiento, §39
cre«teStructurc:procediniiento, §8
matchSingleLine:procediiniento, §22
initMatchStructure:procedim iento, §17
postM atching:procediiniento, §25
Lista de Figuras
1.1
1.2
1.3
1.4
1.5
1.6
1.7
2.1
2.2
2.3
2.4
2.5
2.6
2.7
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
T r a n s f o r m a c i ó n d e p e r s p e c t i v a .....................................................
G e o m e t r í a e s t e r e o ..................................................................................
G e o m e t r í a s i m p l i f i c a d a ......................................................................
G e o m e t r í a e s t e r e o s im p l i f i c a d a .....................................................
D e te c c ió n d e c a m b io s e n u n a i m a g e n u n i d i m e n s io n a l . .
F a c t o r e s e s p a c i a l e s y d ir e c c io n a le s e n la a p lic a c ió n d e
l a s e g u n d a d e r i v a d a ...............................................................................
R e s t r i c c ió n d e c o n t i n u i d a d .................................................................
4
6
8
9
10
12
15
D i a g r a m a a b lo q u e s d e l m o d e lo p r o p u e s t o ............................... 18
C á lc u lo d e l f i l t r o g r a d i e n t e ................................................................ 20
V e c in o s d e l p u n t o P\ e n u n a v e n t a n a d e 3 x 3 .................... 21
A p r o x im a c i ó n d e u n o b j e t o p o r s e g m e n t o s d e r e c t a s . . 24
E j e m p l o d e u n a v e n t a n a ................................................................. 26
R e p r e s e n t a c ió n d e u n a e s t r u c t u r a r e la c i o n a l p o r u n
g r a f o .............................................................................................................
29
P r o x i m i d a d m e d i a t a e i n m e d i a t a .............................................. 31
Im á g e n e s
o r i g i n a l e s d e l a t a s a .................................34
Im á g e n e s
g r a d i e n t e d e la t a s a ................................. 34
A d e lg a z a m i e n t o d e lín e a s d e la t a s a .........................................
35
E x t r a c c i ó n d e c o n t o r n o s d e la t a s a ..........................................35
E t i q u e t a c i ó n d e la s c u r v a s e x t r a í d a s a la s i m á g e n e s d e
l a t a s a ............................................................................................................ 36
Im á g e n e s
o r i g i n a l e s d e la s r a q u e t a s .................... 38
Im á g e n e s
g r a d i e n t e d e la s r a q u e t a s .................... 39
A d e l g a z a m i e n t o d e l í n e a s a la s i m á g e n e s d e la s r a q u e t a s . 40
E x t r a c c i ó n d e c o n t o r n o s a la s im á g e n e s d e la s r a q u e t a s . 41
125
126
L IS T A D E F IG U R A S
3.10 E t i q u e t a c i ó n d e la s c u r v a s e x t r a í d a s a la s i m á g e n e s d e
la s r a q u e t a s ................................................................................................ 42
3.11 I m á g e n e s o r i g i n a l e s d e l l a b o r a t o r i o .......................................... 45
3.12 I m á g e n e s g r a d i e n t e d e l l a b o r a t o r i o ( 1 ) .................................. 46
3.13 A d e lg a z a m i e n t o d e l ín e a s a la s im á g e n e s
del
3.14 E x t r a c c i ó n d e c o n t o r n o s a la s i m á g e n e s
del
3.15 E t i q u e t a c i ó n d e la s c u r v a s e x t r a í d a s d e la s i m á g e n e s
d e l l a b o r a t o r i o ..........................................................................................49
l a b o r a t o r i o . 47
l a b o r a t o r i o . 48
Lista de Tablas
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
D e s c r i p t o r e s d e lo s s e g m e n t o s d e c u r v a e x t r a í d o s d e
l a t a s a ................................................................ ........................................... 37
R e s u l t a d o s d e l a p a r e a m i e n t o d e la s c u r v a s e n la s i m á g e n e s
d e l a t a s a . P r i m e r a e t a p a ................... ........................................... 37
R e s u l t a d o s d e l a p a r e a m i e n t o d e la s c u r v a s e n la s i m á g e n e s
d e l a t a s a . S e g u n d a e t a p a .................. ........................................... 37
D e s c r i p t o r e s d e lo s s e g m e n t o s d e c u r v a e x t r a í d o s d e
la s r a q u e t a s ................................................... ........................................... 43
R e s u l t a d o s d e l a c o r r e s p o n d e n c i a e n la s r a q u e t a s . P r i m e r a
e t a p a .................................................................. ........................................... 44
R e s u l t a d o s d e l a c o r r e s p o n d e n c i a e n la s r a q u e t a s . S e g u n d a e t a p a .................................................. ........................................... 44
D e s c r i p t o r e s d e lo s s e g m e n t o s d e <c u r v a e x t r a í d o s d e l
l a b o r a t o r i o ..................................................... ........................................... 50
R e s u lta d o s d e la c o r r e s p o n d e n c ia e n el la b o r a to r io .
P r i m e r a e t a p a ............................................. ........................................... 52
127
Bibliografía
[1] G e rard M E D IO N I an d R am ak a n t NEV ATIA. S eg m en t B a sed Stereo
M atching. C o m p u te r V ision, G raphics, an d Im age P rocessing. 3 1 .2 18 (1985).
[2] R o b ert F . C H U R C H H 6 U SE. N um erical M ethods V o l.III Jo h n W iley k
Sons. (1981).
[3] W illiam E ric Leifur G R IM S O N . From Im ages To Surfaces. T h e M IT
P ress. (1981).
[4] N asser M. N A S R A B A D I, S an d ra P. C L IF F O R D , Yi LIU . Integration o f
stereo vision and optical flo w by using an ene rg y-m in im iza tio n approach.
J . O p t. Soc. A m . 6 .No 6 . 900-907.(1989).
[5] Ellen C. H IL D R E T H . C om putations U nderlying the M easurem ent o f
Visual M o tio n .A rtificial Intelligence. 2 3 309-354. (1984).
[6 ] S.A. LLO Y D . Stereo m atching using intra- and in ter- row d yn a m ic pro­
gram m ing. P a tte rn R ecognition L etters. 4 273-277 (1986).
[7] N asser M. N A S R A B A D I y Yi L IU .Stereo vision correspondence using
a m ultichannel graph m atching technique.Im age an d V ision C o m p u tin g .
7,
N o 4. 237-245 (1989).
[8 ] G erard M E D IO N I y R am ak a n t NEV ATIA. S eg m ent-B ased Stereo
M atching. C o m p u te r V ision, G raphics, and Im age P rocessing. 3 1 . 2-18.
(1985).
[9] DUD A y H A R T. P a ttern C lassification and Scene A n a lysis. J o h n W iley
& Sons, Inc. (1973).
128
B IB L IO G R A F IA
129
[10] J u a n H u m b e rto S O SSA . A n im proved parallel algorithm fo r thin n in g
digital patterns. P a tte r n R ecognition L e tte rs . 10. 77-80. (1989).
[11] J o h n C A N N Y . A C o m p u ta tio n a l A pproach to Edge D etection. IE E E
T ra n s a c tio n s on P a tte r n A nalysis an d M achine Intelligence. 8 , N o . 6.
679-698. (1986).
[12] D o n a ld E . K N U T H . T E X : T he program . A ddison W esley p u b lish in g
com pany, 1986.
EL JURADO D ESIG NA D O PO R LA S E C C IO N DE COMPUTACION DEL DEPARTAMENTO DE
I N G E N IE R IA E L E C T R IC A , APROBO LA T E S I S : " U n a S o l u c i ó n a l P r o b l e m a d e l a C o rre s p o n d ie n c ia en un P a r E s té re o U tiliz a n d o D e s c r ip to r e s de C u r­
v a s " .________________ _______________________________________________________________________________
EL D I A
16
DEL MES
DESARROLLADO POR E L :
a g o s to
In g .
O BTEN IEN D O EL GRADO D E :
S e c c ió n
de
DEL AÑO
J o a q u ín
M a e stro
en
S a la s
1991.
.
R o d r í g u e z ____________________________
C ie n c ia s
en
In g e n ie ría
E lé c tric a /
C o m p u t a c i ó n . _____________________________________________________________________
de Control Automático.
de Inteligencia Artificial del
ITESM, CAMPUS Monterrey.
Descargar