Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UAMI13644
UAMI13644
Indice general
1. Curvas de cuaternios 4
1.1. Cuaternios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2. B-splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3. Interpolacion de cuaternios duales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.1. Interpolacion de la parte rotacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.2. Metodo TR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.3. Metodo TRT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.4. Implantacion de los metodos de interpolacion . . . . . . . . . . . . . . . . . . . . . . . 12
1.4. Aplicacion de ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2. Reconstruccion 3D 23
2.1. Obtencion de las imagenes de prueba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.
Algebra geometrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.1. Geometra de las imagenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.2.
Algebra geometrica de tres dimensiones (
3,0,0
. . . . . . . . . . . . . . . . . . . . . . . 28
2.2.3.
Algebra geometrica de cuatro dimensiones (
1,3,0
. . . . . . . . . . . . . . . . . . . . . 29
2.3. Operaciones algebraicas de incidencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.3.1. Bracket y dualidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.3.2. Interseccion de entidades geometricas . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.3.3. Aspectos de implementacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.4. Funciones elaboradas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3. Transformada Wavelet 34
3.1. Transformada Wavelet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2. Transformada Wavelet Discreta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3. Tipos de wavelets mas conocidos y su aplicacion con Matlab . . . . . . . . . . . . . . . . . . . 35
3.3.1. Principales funciones de Matlab para trabajar con la transfomada wavelet . . . . . . . 35
3.3.2. Wavelet de Haar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3.3. Daubechies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3.4. Programas de ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.4. Analisis Multiresolucion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.5. Aplicacion de muestra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.6. Codigo de las funciones elaboradas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
1
Dedicatoria
A mis padres y hermanos.
2
Agradecimientos
Agradezco al profesor Leonardo Traversoni por su paciencia y por todas las facilidades recibidas, pero sobre
todo por la oportunidad de dedicarme un tiempo a descubrir y estudiar estos temas que tanto me gustaron.
Tambien agradezco a mis compa neros Salma, Maricela, Andres y Mario por hacer mas agradable la estancia
en el laboratorio. Por su apoyo y amistad.
3
Captulo 1
Curvas de cuaternios
1.1. Cuaternios
Un cuaternio Q es un n umero hipercomplejo que depende de cuatro unidades 1, i, j, k:
Q = c
0
+c
1
i +c
2
j +c
3
k (1.1)
donde los c
i
(i = 1, 2, 3) son n umeros reales llamados componentes de Q.
El conjunto de cuaternios se representa por H. Otra representacion mas practica de Q es (c
0
, c
1
, c
2
, c
3
).
La suma y la resta de cuaternios se realizan componente a componente. La multiplicacion de dos cuaternios
es distributiva con respecto a la suma y se dene por las siguientes reglas de multiplicacion de las unidades:
i
2
= j
2
= k
2
= 1
jk = kj = i
ki = ik = j
ij = ji = k
Entonces el producto Q Q
= (c
0
+c
1
i +c
2
j +c
3
k) (c
0
+c
1
i +c
2
j +c
3
k)
= (c
0
c
0
c
1
c
1
c
2
c
2
c
3
c
3
) + (c
0
c
1
+c
1
c
0
+c
2
c
3
c
3
c
2
)i (1.2)
+(c
0
c
2
+c
2
c
0
+c
3
c
1
c
1
c
3
)j + (c
0
c
3
+c
3
c
0
+c
1
c
2
c
2
c
1
)k
El conjugado de un cuaternio Q = c
0
+ c
1
i + c
2
j + c
3
k se representa por
Q y se dene como
Q =
c
0
c
1
i c
2
j c
3
k. El producto Q
Q es igual a c
2
0
+ c
2
1
+ c
2
2
+ c
2
3
y se conoce como la norma N(Q) del
cuaternio Q . Cuando la norma de un cuaternio es igual a 1 se dice que es un cuaternio unitario.
Cuando la primera componente de un cuaternio es igual a cero se dice que se tiene un cuaternio vectorial
o puro Q = (0, c
1
, c
2
, c
3
).
Una propiedad de los cuaternios unitarios es que pueden ser escritos en la forma:
Q = (cos , xsin , y sin , z sin ) = (cos , v sin ) (1.3)
donde v = (x, y, z), esta forma es muy util cuando los cuaternios se usan para representar rotaciones.
La rotacion de un punto p = (p
x
, p
y
, p
z
) alrededor del eje v = (v
x
, v
y
, v
z
) por un angulo se puede realizar
por medio de un producto de cuaternios, dicho producto es:
P
= Q P
Q (1.4)
4
CAP
= (0, p
). El punto p
= (p
x
, p
y
, p
z
) es el resultado de la rotacion del punto p.
Ademas, el cuaternio Q utilizado es unitario y esta dado por:
Q = (cos
2
, v sin
2
) (1.5)
Entonces existe una correspondencia entre un cuaternio unitario Q = (c
0
, c
1
, c
2
, c
3
) y las matrices de
rotacion en R
3
. Esta relacion esta dada por:
(c
0
, c
1
, c
2
, c
3
)
_
_
c
2
0
+c
2
1
c
2
2
c
2
3
2(c
0
c
3
+c
1
c
2
) 2(c
0
c
2
+c
1
c
3
)
2(c
0
c
3
+c
2
c
1
) c
2
0
c
2
1
+c
2
2
c
2
3
2(c
0
c
1
+c
2
c
3
)
2(c
0
c
2
+c
1
c
3
) 2(c
0
c
1
+c
2
c
3
) c
2
0
c
2
1
c
2
2
+c
2
3
_
_
(1.6)
Por lo tanto, el punto rotado p
= Up (1.7)
donde U se obtiene de la forma descrita a partir de cuaternio Q utilizado en (1.4).
Si lo que se necesita es representar movimientos que incluyan traslacion, se puede recurrir a los cuaternios
duales. Un cuaternio dual tiene la forma:
Q = Q
0
+Q
(1.8)
donde Q
0
y Q
son cuaternios normales conocidos como parte real Re(Q) y parte dual Du(Q) de Q, respec-
tivamente, y el smbolo , llamado unidad dual, cumple con:
2
= 0 (1.9)
El conjunto de cuaternios duales re representa por H[]. Las operaciones de suma y resta de cuaternio
duales se realiza por componentes, el producto solo tiene que tomar en cuenta la relacion (1.9), y la conjugacion
se realiza obteniendo el conjugado de las partes real y dual.
Un cuaternio dual que representa una traslacion tiene la forma:
Q = (2v
0
,
0) +(0, v) (1.10)
donde v
0
,= 0. La traslacion correspondiente a este cuaternio esta dada por el vector
1
v0
v.
Al multiplicar un cuaternio como el anterior con uno normal, en ese orden, se tiene un cuaternio dual
que caracteriza completamente un movimiento en el espacio. Es decir, un cuaternio dual Q asociado a una
traslacion por
1
v0
v y una rotacion dada por el cuaternio R = (cos
2
, wsin
2
) tiene la forma:
Q = Q
0
+Q
= ((2v
0
,
donde u
i
u
i+1
para i = 0, . . . , m1. Cada elemento de U se conoce como nudo y U como vector de nudos.
La formula que dene a los B-spline de grado p es:
N
i,0
(u) =
_
1 si u
i
u < u
i+1
0 en otro caso
N
i,p
(u) =
u u
i
u
i+p
u
i
N
i,p1
(u) +
u
i+p+1
u
u
i+p+1
u
i+1
N
i+1,p1
(u) (1.14)
Como la secuencia de nudos solo tiene que ser no decreciente, puede ocurrir una division entre cero al
aplicar directamente la formula interior. Cuando esto ocurre, se toma al cociente
x
0
como 0.
A modo de ejemplo, la gura 1.1 muestra las funciones B-spline de grado 3 generadas por el vector de
nudos U = 0, 0, 0, 0, 0.1667, 0.3333, 0.5, 0.6667, 0.83333, 1, 1, 1, 1.
Figura 1.1: En este conjunto de funciones B-spline puede verse que cada una de ellas toma valores distintos
de cero unicamente en intervalos bien denidos. Tambien se nota que los nudos determinan la terminacion o
el inicio de las funciones.
La dependencia de las funciones B-spline del vector de nudos U se reeja tanto en la forma de las funciones
resultantes como en la continuidad de las curvas que pueden representar mediante su combinacion en forma
CAP
i=0
N
i,p
(t)C
i
(1.17)
Los puntos C
i
se conocen como puntos de control de C(t) y denen la forma de la curva obtenida. Si
lo que se necesita es interpolar un conjunto de n + 1 puntos P
i
, los puntos de control se pueden obtener
resolviendo el siguiente sistema de ecuaciones:
n
j=0
N
j,p
(t
i
)C
j
= P
i
(i = 0, 1, . . . , n) (1.18)
lo que requiere que se tenga un conjunto de n+1 funciones B-spline de alg un grado p, usualmente igual a 3.
1.3. Interpolacion de cuaternios duales
Dado que un desplazamiento espacial, rotacion y traslacion, puede ser representado por un cuaternio
dual, una funcion de cuaternios duales Q(t) : [0, 1] H[] representa un movimiento continuo con parametro
t. Podemos contruir una curva de este tipo se tenemos una serie de cuaternios de referencia P
i
, con sus
respectivos parametros t
i
, y llevamos a cabo una interpolacion con ellos.
Planteando mejor el problema, se tienen m+1 desplazamientos, representados por los cuaternios duales:
P
i
= ((2,
0) +(0, s
i
)) (cos
2
, r
i
sin
2
) (s
i
, r
i
R
3
) (1.19)
con los parametros de tiempo t
i
R, 0 = t
0
< t
1
< . . . < t
m
= 1 (i = 0, 1, . . . m).
CAP
R
i
R
i+1
) (R
i
+R
i+1
) (
R
i
+
R
i+1
) (1.21)
entonces se mantiene inalterado, si no cumple con esta desigualdad, se cambia por R
i+1
. El signo de R
0
es
arbitrario.
Una vez que se tiene la secuencia R
i
con los signos correctos, se plantea y resuelve el sistema de ecuaciones:
m
j=0
N
j,p
(t
i
)C
j
= R
i
(i = 0, 1, . . . , m) (1.22)
que desarrollado queda
_
_
_
_
_
N
0,p
(t
0
) N
1,p
(t
0
) . . . N
m,p
(t
0
)
N
0,p
(t
1
) N
1,p
(t
1
) . . . N
m,p
(t
1
)
.
.
.
.
.
.
.
.
.
.
.
.
N
0,p
(t
m
) N
1,p
(t
m
) . . . N
m,p
(t
m
)
_
_
_
_
_
_
_
_
_
_
C
0
C
1
.
.
.
C
m
_
_
_
_
_
=
_
_
_
_
_
R
0
R
1
.
.
.
R
m
_
_
_
_
_
(1.23)
y entonces la curva de cuaternios que describe la parte rotacional queda:
Q
rot
(t) =
m
i=0
N
i,p
(t)C
i
(1.24)
Aunque hay que se nalar que esta curva rotacional tiene que ser normalizada antes de poder ser utilizada
en alguna aplicacion, ya que en general la norma de Q(t
k
) para alg un t
k
diferente de los parametros del
movimiento no tiene norma unitaria, aunque si es muy cercana a 1.
CAP
0) +
_
0,
m
i=0
N
i,p
(t) p
i
_
(1.26)
entonces, la expresion
m
i=0
N
i,p
(t) p
i
tiene que interpolar a las cantidades s
i
de los desplazamientos (1.19),
es decir, se requiere resolver el sistema de ecuaciones:
m
j=0
N
j,p
(t
i
) p
j
= s
i
(i = 0, 1, . . . , m) (1.27)
Una caracterstica de este metodo radica en que las partes rotacional y traslacional son completamente
independientes y por lo tanto se evita el uso de las expresiones (1.13).
1.3.3. Metodo TRT
Este metodo es mucho mas elaborado que el anterior ya que realiza la combinacion de Q
rot
(t) con dos
segmentos traslacionales Q
(1)
trasl
(t) y Q
(2)
trasl
(t) de la siguiente forma:
Q(t) = Q
(1)
trasl
(t) Q
rot
(t) Q
(2)
trasl
(t) (1.28)
donde
Q
(1)
trasl
(t) = (2,
0) +
_
0,
l1
j1=0
N
j1,p
(t) p
(1)
j1
_
(1.29)
Q
(2)
trasl
(t) = (2,
0) +
_
0,
l2
j2=0
N
j2,p
(t) p
(2)
j2
_
(1.30)
o simplicando la notacion
Q
(1)
trasl
(t) = 2 +
l1
j1=0
N
j1,p
(t) p
(1)
j1
(1.31)
Q
(2)
trasl
(t) = 2 +
l2
j2=0
N
j2,p
(t) p
(2)
j2
(1.32)
CAP
j1=0
N
j1,p
(t) p
(1)
j1
. .
X
_
_
m
i=0
N
i,p
(t)C
i
. .
Z
_
_
2 +
l2
j2=0
N
j2,p
(t) p
(2)
j2
. .
Y
_
= (2 +X) Z (2 +Y )
= (2Z +XZ) (2 +Y )
= 4Z + 2ZY + 2XZ +
2
XZY
= 4Z + 2(ZY +XZ) (1.33)
y por lo tanto podemos hacer las asociaciones,
Q
0
(t) = 4Z (1.34)
Q
Z)
= 16Z
Z + 8(ZY
Z +XZ
Z) (1.37)
pero como Trasl(Q(t)) debe de ser un cuaternio dual que representa una traslacion, debe de tener la forma
(1.10) y entonces obtenemos la expresion para los vectores de traslacion correspondientes:
V (t) =
8(ZY
Z +XZ
Z)
8Z
Z
=
(ZY
Z +XZ
Z)
Z
Z
(1.38)
=
ZY
Z
Z
Z
+X (1.39)
entonces, evaluando en los momentos t
i
, los parametros del movimiento, se puede formar un sistema lineal
usando los puntos s
i
de (1.19) que indican la traslacion en t
i
:
X(t
i
) +
Z(t
i
)Y (t
i
)
Z(t
i
)
Z(t
i
)
Z(t
i
)
= s
i
(i = 0, 1, . . . , m) (1.40)
pero como Z(t
i
)
Z(t
i
) es igual a 1, ya que estamos interpolando cuaternios unitarios, podemos reescribir el
sistema como:
X(t
i
) +Z(t
i
)Y (t
i
)
Z(t
i
) = s
i
(i = 0, 1, . . . , m) (1.41)
CAP
Z(t
i
) = R
i
Y (t
i
)
R
i
por el producto matricial (U(R
i
)Y (t
i
)
T
)
T
que despues puede ser expandido al
establecer el sistema lineal antes mencionado.
Entonces, el sistema lineal que nos permite encontrar la parte traslacional queda
l1
j1=0
N
j1,p
(t
i
) p
(1)
j1
+
l2
j2=0
N
j2,p
(t
i
)U(R
i
) p
(2)
j2
= s
i
(i = 0, 1, . . . , m) (1.42)
De este sistema puede notarse que como tenemos l
1
+ 1 incognitas p
(1)
y l
2
+ 1 incognitas p
(2)
, debemos
tener la siguiente igualdad
l
1
+l
2
+ 2 = m+ 1 (1.43)
para que el sistema (1.42) pueda tener solucion unica. Esto nos lleva a establecer que l
1
y l
2
deben cumplir
la siguiente relacion
l
1
+l
2
= m1 (1.44)
Entonces, para tener un ejemplo concreto, si se tienen ocho posiciones a interpolar s
0
, . . . , s
7
, se puede
hacer l
1
= l
2
= 3 y al escribir el sistema (1.42) en la forma A p = s usando B-splines de grado 3, se tiene:
A =
_
_
_
_
_
_
_
_
_
_
_
_
N
0,3
(t
0
) N
1,3
(t
0
) N
2,3
(t
0
) N
3,3
(t
0
) N
0,3
(t
0
)U
0
N
1,3
(t
0
)U
0
N
2,3
(t
0
)U
0
N
3,3
(t
0
)U
0
N
0,3
(t
1
) N
1,3
(t
1
) N
2,3
(t
1
) N
3,3
(t
1
) N
0,3
(t
1
)U
1
N
1,3
(t
1
)U
1
N
2,3
(t
1
)U
1
N
3,3
(t
1
)U
1
N
0,3
(t
2
) N
1,3
(t
2
) N
2,3
(t
2
) N
3,3
(t
2
) N
0,3
(t
2
)U
2
N
1,3
(t
2
)U
2
N
2,3
(t
2
)U
2
N
3,3
(t
2
)U
2
N
0,3
(t
3
) N
1,3
(t
3
) N
2,3
(t
3
) N
3,3
(t
3
) N
0,3
(t
3
)U
3
N
1,3
(t
3
)U
3
N
2,3
(t
3
)U
3
N
3,3
(t
3
)U
3
N
0,3
(t
4
) N
1,3
(t
4
) N
2,3
(t
4
) N
3,3
(t
4
) N
0,3
(t
4
)U
4
N
1,3
(t
4
)U
4
N
2,3
(t
4
)U
4
N
3,3
(t
4
)U
4
N
0,3
(t
5
) N
1,3
(t
5
) N
2,3
(t
5
) N
3,3
(t
5
) N
0,3
(t
5
)U
5
N
1,3
(t
5
)U
5
N
2,3
(t
5
)U
5
N
3,3
(t
5
)U
5
N
0,3
(t
6
) N
1,3
(t
6
) N
2,3
(t
6
) N
3,3
(t
6
) N
0,3
(t
6
)U
6
N
1,3
(t
6
)U
6
N
2,3
(t
6
)U
6
N
3,3
(t
6
)U
6
N
0,3
(t
7
) N
1,3
(t
7
) N
2,3
(t
7
) N
3,3
(t
7
) N
0,3
(t
7
)U
7
N
1,3
(t
7
)U
7
N
2,3
(t
7
)U
7
N
3,3
(t
7
)U
7
_
_
_
_
_
_
_
_
_
_
_
_
p =
_
_
_
_
_
_
_
_
_
_
_
_
_
_
p
(1)
0
p
(1)
1
p
(1)
2
p
(1)
3
p
(2)
0
p
(2)
1
p
(2)
2
p
(2)
3
_
_
_
_
_
_
_
_
_
_
_
_
_
_
s =
_
_
_
_
_
_
_
_
_
_
_
_
s
0
s
1
s
2
s
3
s
4
s
5
s
6
s
7
_
_
_
_
_
_
_
_
_
_
_
_
donde U
i
representa a U(R
i
) (i = 0, . . . , 7) dada por (1.6).
El sistema (1.42) contiene algunas matrices como coecientes, sin embargo, si se escribe de la siguiente
forma
l1
j1=0
N
j1,p
(t
i
)I
3
p
(1)
j1
+
l2
j2=0
N
j2,p
(t
i
)U(R
i
) p
(2)
j2
= s
i
(i = 0, 1, . . . , m) (1.45)
CAP
con Q = Q
0
+Q
.
Figura 1.12: Esta funcion descompone un cuaternio dual en un vector de traslacion y un cuaternio unitario
simple que representa una rotacion.
CAP
ITULO 2. RECONSTRUCCI
ON 3D 24
Figura 2.1: Posiciones de la camara para cada una de las fotos de la gura 2.3. D = 50mm y L = 115mm
Figura 2.2: Estas son dos tomas de una misma posicion del dado desde dos posiciones diferentes de la camara.
CAP
ITULO 2. RECONSTRUCCI
ON 3D 25
Figura 2.3: Aqu se muestran todos los pares de fotograas del dado.
CAP
ITULO 2. RECONSTRUCCI
ON 3D 26
de un AG de dimension n, generada por un espacio vectorial de dimension n, es (
p,q,r
, p, q y r se conocen como
la rma del AG en cuestion y representan el n umero de vectores cuyo cuadrado es +1, 1 y 0 respectivamente,
ademas p +q +r = n.
Un algebra geometrica puede ser generada, a partir de la rma deseada, imponiendo ciertas restricciones
sobre la forma en que se combinaran sus elementos. Sin embargo, una forma menos sosticada y mas simple
de comenzar a utilizarla es listando sus axiomas. A continuacion se estos se listaran para el caso de un AG
de dimension 3.
Antes que nada hay que mencionar que nuestra AG debe incluir a los elementos de grados 0 a 3, es decir,
elementos 0-vector (escalar), 1-vector (vector), 2-vector (bivector) y 3-vector (trivector) que representaran
las nociones geometricas de puntos, lineas, planos y espacio respectivamente. Ademas se introducen tres tipos
de producto, el escalar, el interno y el externo para representar relaciones entre los elementos, aunque estos
ultimos pueden ser combinados en un solo producto conocido como producto geometrico. Esto permitira que
se puedan combinar elementos de diferentes grados. Un elemento cualquiera de nuestra algebra tiene la forma:
A = A
0
+A
1
+A
2
+A
3
A los elementos de la forma A se le conoce como multivectores, los cuales siguen las siguientes reglas:
A+B = B +A
(A+B) +C = A+ (B +C)
(AB)C = A(BC)
A+ 0 = A
1A = A
A+ (A) = 0
Ademas, el algebra obtenida se considera cerrada, esto es, la suma o producto de culquier par de multi-
vectores es a su vez un unico multivector.
Estos axiomas son muy parecidos a los del algebra elemental, con excepcion de la conmutatividad, y
aplican a cualquier multivector. Sin embargo, hay que ser mas especcos y se nalar caractersticas de los
elementos de ciertos grados en particular.
La conmutatividad del producto se tiene solo en el caso de la multiplicacion de cualquier multivector
por un escalar (0-vector)
A = A
El cuadrado de un vector (1-vector) a es un unico escalar positivo [a[
2
, esto es:
a
2
= [a[
2
> 0
El producto geometrico de dos vectores puede ser descompuesto en terminos de dos productos mas
simples de la siguientes forma:
ab = ab +ab
donde el producto interno es conmutativo y el producto externo es anticonmutativo. Estos productos
se generalizan a elementos de grados mas altos de la siguiente manera:
CAP
ITULO 2. RECONSTRUCCI
ON 3D 27
Para un vector a y un elemento de grado k, A
k
el producto interno se dene como:
aA
k
=
1
2
(aA
k
(1)
k
A
k
a)
y el producto externo como:
aA
k
=
1
2
(aA
k
+ (1)
k
A
k
a)
y sumando estas dos ecuaciones se tiene:
aA
k
= aA
k
+aA
k
El resultado de los productos interno y externo de un vector por un elemento de grado k tiene el efecto
de aumentar o disminuir el grado en una unidad respectivamente:
aA
k
es un vector de grado k 1
aA
k
es un vector de grado k + 1
Pero como nuestra algebra geometrica es de dimension tres, no podemos obtener elementos de grados
4 o superior, por lo tanto resulta logico establecer la siguiente relacion:
aA
3
= 0
y de aqu se deduce inmediatamente que:
aA
3
= A
3
a
Con el n de mostrar a grandes rasgos el uso del algebra geometrica cuyos axiomas se han enunciado, se
procedera a deducir algunas identidades partiendo de los hechos fundamentales.
Se tiene que el producto geometrico es asociativo, entonces
a(bc) = (ab)c
ademas se sabe que
ab = ab +ab
entonces se tiene
a(bc +bc) = (ab +ab)c
y dado que el producto externo xy de dos vectores eleva el grado de y en uno, se tiene que los productos
bc y ab son bivectores y se llega al siguiente desarrollo:
a(bc) +a(bc) +a(bc) = (ab)c + (ab)c + (ab)c
de donde se puede identicar a los terminos a(bc) y a(bc) como vectores y al termino a(bc) como
trivector. Por lo tanto se puede establecer la siguiente igualdad intuitiva:
a(bc) = (ab)c
CAP
ITULO 2. RECONSTRUCCI
ON 3D 28
y la no tan intuitiva:
a(bc) +a(bc) = (ab)c + (ab)c
Procediendo de la misma forma se puede demostrar la distributividad de los productos interno y externo.
En general se tiene:
a(B
r
+C
r
) = aB
r
+aC
r
y
a(B
r
+C
r
) = aB
r
+aC
r
2.2.1. Geometra de las imagenes
Como se haba mencionado en la introduccion, una de las formas de procesar imagenes que provienen de
escenas tridimensionales es por medio de la geometra proyectiva. En especial, usando el modelo analtico de
las coordenadas homogeneas. Es este modelo de la geometra proyectiva, el espacio euclidiano tridimensional
es embebido en el espacio proyectivo de dimension 3, T
3
o 1
4
, y el espacio euclidiano de dimension 2 es
embebido en el espacio proyectivo de dimension 2, T
2
o 1
3
. Esto trae como ventajas que la transformacion
de proyeccion del espacio tridimensional al espacio bidimensional de las imagenes se puede representar como
una transformacion lineal y por lo tanto representable por una matriz.
Entonces, como vamos a usar los espacios proyectivos de 2 y 3 dimensiones, o en el modelo homogeneo, los
espacios euclidianos de 3 y 4 dimensiones, tambien conviene usar el algebra geometrica de 3 y 4 dimensiones
generada por estos espacios euclidianos.
2.2.2.
Algebra geometrica de tres dimensiones (
3,0,0
El espacio euclidiano de tres dimensiones puede ser generado por tres vectores base
1
,
2
,
3
que
cumplen con la propiedad de que
2
i
= +1 para i = 1, 2, 3. El algebra geometrica generada por estos vectores
base tiene los 2
3
elementos:
1
..
escalar
,
1
,
2
,
3
. .
vectores
,
1
2
,
2
3
,
3
. .
bivectores
,
1
. .
trivector
Cada una de estas categoras del algebra tiene su propia interpretacion. Un vector se puede ver como una
lnea dirigida, un bivector como un area orientada, y un trivector como un volumen orientado. Este ultimo
elemento se conoce como pseudoescalar, su cuadrado es igual a 1, conmuta con cualquier multivector y
usualmente se representa con la letra I.
Si me multiplica al pseudoescalar unitario con cada uno de los tres vectores base, se obtienen las relaciones
siguientes:
I
1
=
2
3
I
2
=
3
1
I
3
=
1
2
estos elementos I
i
pueden servir como una forma de representar a las unidades imaginarias de un
cuaternio, que puede ahora ser escrito como:
R = q
0
+q
1
(I
1
) q
2
(I
2
) +q
3
(I
3
)
y entonces puede verse que en realidad los cuaternios son un subalgebra de el algebra geometrica de tres
dimensiones que se esta desarrollando.
CAP
ITULO 2. RECONSTRUCCI
ON 3D 29
2.2.3.
Algebra geometrica de cuatro dimensiones (
1,3,0
Esta algebra geometrica tambien se conoce como algebra de Lorentz debido a su uso en la teora de la
relatividad. Tiene 4 elementos base
1
,
2
,
3
,
4
los cuales cumplen con
2
1
=
2
2
=
2
3
= 1,
2
4
= +1.
Estos
vectores generan la siguiente base de multivectores:
1
..
escalar
,
k
..
4 vectores
,
2
3
,
3
1
,
1
2
,
4
1
,
4
2
,
4
. .
6 bivectores
, I
k
..
4 trivectores
, I
..
pseudoescalar
El pseudo escalar es I =
1
4
y su cuadrado tambien es igual a 1.
El vector
4
juega un papel importante en la asociacion de bivectores del algebra de 4 dimensiones con
elementos del algebra de 3 dimensiones.
Recordando un poco, las coordenadas homogeneas son en realidad clases de equivalencia de puntos en
un espacio 1
n
. Por ejemplo, en 1
4
, los puntos (2, 3, 4, 1), (4, 6, 8, 2) y (6, 9, 12, 3) representan la
misma coordenada homogenea, en otras palabras, todos las coordenadas que sean proporcionales en todas
sus entradas representan al mismo punto.
En el algebra geometrica esta asociacion se realiza multiplicando por un elemento especial. Partiendo de
un elemento de nuestra algebra de 4 dimensiones X = X
1
1
+ X
2
2
+ X
3
3
+ X
4
4
se puede obtener la
division proyectiva mediante la operacion:
X
4
= X
4
+X
4
= X
4
_
1 +
X
4
X
4
_
X
4
(1 +x)
De esta forma se asocia al vector X en 1
4
con el vector x en 1
3
.
2.3. Operaciones algebraicas de incidencia
Las operaciones de incidencia en geometra proyectiva son sumamente usadas en la vision por computa-
dora.
Estas operaciones se conocen como meet (interseccion) y join (union) de entidades geometricas. Por
ejemplo, el meet de una linea y un plano es un punto, y el join de dos puntos es una linea.
Estas
operaciones se pueden describir y calcular en forma muy simple usando algebra geometrica. Pero antes de
describirlas hay que mencionar los conceptos de bracket y de dualidad.
2.3.1. Bracket y dualidad
El bracket es una operacion que se aplica unicamente a los pseudoescalares de cualquier algebra geometri-
ca. Su funcion es extraer la magnitud de dicho pseudoescalar, debido a que todos los pseudoescalares son
proporcionales para cualquier algebra en particular. Esto quiere decir que se I es el pseudo escalar unitario
de alguna algebra geometrica, cualquier otro pseudoescalar es de la forma P = I. En este caso, el bracket
de P, representado por [P] toma el valor de . Analticamente, esta operacion se puede llevar a cabo por
siguiendo los siguientes pasos:
PI
1
= II
1
= [P]
Para un algebra geometrica de n dimensiones, el bracket de n vectores x
i
es:
[x
1
x
2
x
3
. . . x
n
] = [x
1
x
2
x
3
. . . x
n
]
= (x
1
x
2
x
3
. . . x
n
)I
1
CAP
ITULO 2. RECONSTRUCCI
ON 3D 30
Desarrollando el producto se puede mostra que esto es equivalente a la denicion del determinante de una
matriz que tiene a los vectores x
i
como las.
Usando la division proyectiva mencionada anteriormente y se puede demostrar que [11]:
[X
1
X
2
X
3
X
4
] = (X
1
X
2
X
3
X
4
)I
1
4
= (x
2
x
1
) (x
3
x
1
) (x
4
x
1
)I
1
3
Ademas del bracket, otra operacion importante es la obtencion de dual de un r-vector. El dual de un
r-vector A se representa por A
= AI
1
En un algebra de n dimensiones, el grado del dual de un elemento de grado r es n r. Por ejemplo, en un
algebra de tres dimensiones, el dual de un vector (grado = 1) es un plano o bivector (grado = 2).
Usando los conceptos de bracket y dualidad, en [11] se demuestra la siguiente relacion:
(A B)
= A
que en palabras puede establecerse como: el dual de una interseccion (meet) esta dada por la union (join)
de sus duales. Ademas se puede obtener el siguiente resultado:
A B = ((A B)
= (A
)I = (A
)(I
1
I)I = (A
B)
2.3.2. Interseccion de entidades geometricas
Con las operaciones anteriormente denidas se pueden realizar las operaciones geometricas necesarias
para la reconstruccion de un solido a partir de dos vistas de forma sencilla. Sin embargo no esta de mas
recordar que la operacion de join representa la union de dos elementos geometricos. Para los puntos X y Y
XY representa la linea que los une. Y que la operacion meet (interseccion) representa la entidad geometrica
com un a sus operandos, por ejemplo, si X es una linea y Y es un plano, XY representa al punto que ambos
tienen en com un.
interseccion de una linea y un plano
En el espacio 1
4
o T
3
consideremos la linea A = X
1
X
2
que se intersecta con el plano = Y
1
Y
2
Y
3
.
El punto de interseccion se puede calcular por medio de la operacion A :
A = (X
1
X
2
) (Y
1
Y
2
Y
3
) = A
Desarrollando esta expresion con operaciones antes introducidas se llega a la siguiente expresion:
A = [X
1
X
2
Y
2
Y
3
]Y
1
+ [X
1
X
2
Y
3
Y
1
]Y
2
+ [X
1
X
2
Y
1
Y
2
]Y
3
Interseccion de dos planos
Esta operacion es un poco mas robusta que la primera ya que el resultado es una linea completa en vez
de un solo punto.
Si se tienen dos planos
1
= X
1
X
2
X
3
y
2
= Y
1
Y
2
Y
3
, su interseccion se puede calcular como:
1
2
= (X
1
X
2
X
3
) (Y
1
Y
2
Y
3
)
Poniendo en terminos de operaciones mas simples se tiene que:
1
2
= [X
1
X
2
X
3
Y
1
](Y
2
Y
3
) + [X
1
X
2
X
3
Y
2
](Y
3
Y
1
) + [X
1
X
2
X
3
Y
3
](Y
1
Y
2
)
CAP
ITULO 2. RECONSTRUCCI
ON 3D 31
function a = bracket4(X1,X2,X3,X4)
X1 = X1/X1(4); X1 = X1(1:3);
X2 = X2/X2(4); X2 = X2(1:3);
X3 = X3/X3(4); X3 = X3(1:3);
X4 = X4/X4(4); X4 = X4(1:3);
a = bracket3( X2-X1, X3-X1, X4-X1 );
Figura 2.4: Bracket de 4 dimensiones.
function a = bracket3(x1, x2, x3)
m = zeros(3);
m(1, :) = x1;
m(2, :) = x2;
m(3, :) = x3;
a = det(m);
Figura 2.5: Bracket de 3 dimensiones.
Interseccion de dos lineas
La interseccion de dos lneas no se implementa de forma directa debido a que es una operacion demasiado
sensible a errores de computo, solo basta notar que para que dos lneas se intersecten deben de estar contenidas
en el mismo plano y esta situacion es difcil de lograr con datos los experimentales provenientes de las
fotografas. Sin embargo hay una forma de aproximar la interseccion de dos lneas mediante dos intersecciones
linea-plano. Aunque de esta forma lo que se obtiene en realidad es el punto a la mitad de la linea que une a
los puntos mas cercanos entre las dos lineas.
2.3.3. Aspectos de implementacion
Debido a que la operacion mas importante para nuestros propositos es la interseccion de dos entidades
geometricas, estas son las unicas que se llevan a cado explcitamente. La union de dos entidades, por ejemplo
puntos, solo se usa en la expresion
1
2
anterior de forma auxiliar, ya que por razones practicas nos
conviene mas obtener dos puntos que denan la lnea resultante. Por lo tanto la funcion de union de mas de
dos puntos no se implementa. La union de dos y tres puntos que denen lineas y planos, que es la que se
ocupa en las formulas, se maneja por medio de una estructura que contiene a los puntos, ya que estos puntos
se ocuparan despues en las expresiones y no conviene realizar dicha operacion.
Por otro lado, el bracket en el algebra de cuatro dimensiones que se usa en las formulas se puede reducir
a un bracket de tres dimensiones y este a su vez puede ser calculado, como se habia mencionado, por medio
de un determinante.
2.4. Funciones elaboradas
En las guras 2.4 a 2.12 se muestra el codigo que implementa las operaciones mencionadas. Hay que
destacar que las operaciones se realizan en forma muy eciente y el codigo resultante es muy breve.
CAP
ITULO 2. RECONSTRUCCI
ON 3D 32
function p = Linea(X1, X2)
%Se reserva espacio para el resultado
p = cell(1, 2);
%Se guardan los puntos
p1 = X1;
p2 = X2;
Figura 2.6: Esta funcion agrupa en un dato tipo cell los dos puntos que denen una linea.
function p = Plano(Y1, Y2, Y3)
%Se reserva espacio para el resultado
p = cell(1, 3);
%Se guardan los puntos
p1 = Y1;
p2 = Y2;
p3 = Y3;
Figura 2.7: Esta funcion agrupa en un dato tipo cell los tres puntos que denen un plano.
function punto = meetLineaPlano(L, P)
%Se obtiene el resultado
punto = ...
bracket4(L1, L2, P2, P3)*P1 + ...
bracket4(L1, L2, P3, P1)*P2 + ...
bracket4(L1, L2, P1, P2)*P3;
Figura 2.8: Encuentra el punto de interseccion de una linea L y un plano P.
function linea = meetPlanoPlano(P1, P2)
%Se calcula cada una de las componentes
A = joinPuntoPunto(P22, P23);
B = joinPuntoPunto(P23, P21);
C = joinPuntoPunto(P21, P22);
%Se encuentran los coeficientes de cada componente
%y se obtiene el resultado final
linea = ...
bracket4(P11, P12, P13, P21)*A + ...
bracket4(P11, P12, P13, P22)*B + ...
bracket4(P11, P12, P13, P23)*C;
Figura 2.9: Encuentra la linea de interseccion de los planos P1 y P2.
CAP
ITULO 2. RECONSTRUCCI
ON 3D 33
function l = joinPuntoPunto(A, B)
%Los puntos A y B se convierten a su representacion 3D
A = A/A(4);
B = B/B(4);
%Se reserva espacio para el resultado
l = zeros(1, 6);
%Se encuentra la direccion de la linea
l(1:3) = A(1:3)-B(1:3);
%Se encuentra el momento de la linea
l(4:6) = cross(A(1:3), B(1:3));
Figura 2.10: Encuentra la expresion en coordenadas de Pl ucker de la linea denida por los puntos A y B.
function linea2 = descomposicionLinea(linea1)
%Componente de direccion de la linea
u1 = linea1(1:3);
%Momento de la linea
u2 = linea1(4:6);
%Encontramos un punto en la linea
Pperp = cross(u2(1:3), u1(1:3));
Pperp = Pperp/dot(u1(1:3), u1(1:3));
%Encontramos otro punto en la linea
p2 = Pperp+u1;
%Reservamos espacio para el resultado
linea2 = Linea([Pperp 1], [p2 1]);
Figura 2.11: Obtiene dos puntos distintos que se encuentren sobre linea1 dada en coordenadas de Pl ucker.
function pr = interseccionLineas(p1, p2, o1, o2)
%creamos el plano1 y la linea2
plano1 = Plano(o1, p1, p1+p1.*[0,1,0,0]);
linea2 = Linea(o2, p2);
pr1 = meetLineaPlano(linea2, plano1);
pr1 = homogeneas2cartesianas(pr1);
%creamos el plano2 y la linea1
plano2 = Plano(o2, p2, p2+p2.*[0,1,0,0]);
linea1 = Linea(o1, p1);
pr2 = meetLineaPlano(linea1, plano2);
pr2 = homogeneas2cartesianas(pr2);
%promediamos las aproximaciones
pr = (pr1+pr2)/2;
Figura 2.12: Aproxima una interseccion de dos lineas por medio de dos intersecciones linea-plano.
Captulo 3
Transformada Wavelet
Las se nales electricas y las imagenes son representaciones de fenomenos reales que son de interes por
diversos motivos. Un electrocardiograma puede ser determinante en la obtencion de un diagnostico medico,
as como una imagen puede ayudar a hacer una prediccion del clima. Entonces, la existencia de estas repre-
sentaciones se justica porque tienen la capacidad de almacenar informacion. Informacion que al adherirse a
alguna representacion particular tiene que ser recuperada utilizando alguna tecnica de procesamiento. Esto
es lo que hace al analisis de se nales tan complejo: la representacion de la informacion siempre favorece alg un
aspecto muy especco de la se nal, y por lo tanto tenemos que elegir la representacion que nos brinde la mejor
vista.
Sin embargo, las transformaciones que nos permiten obtener otras perspectivas de la se nal involucran
procesos que pueden ser muy complejos, y por lo tanto, computacionalmente costosos. El ejemplo mas im-
portante es el analisis de Fourier. No fue hasta que se desarrollo un algoritmo rapido, la transformada rapida
de Fourier, que su uso se extendio considerablemente.
El hecho que hace posible el analisis de Fourier es que una funcion puede ser aproximada, tanto como se
quiera, por una suma de funciones senoidales de frecuencias y amplitudas diferentes. Con esta aproximacion,
o descomposicion, se puede observar el contenido de frecuencia de una se nal. Las variaciones rapidas cor-
responden a frecuencias altas, mientras que las componentes de frecuencias menores se encuentran menos
visibles en la se nal, entonces, cada componente de frecuencia corresponde a la aportacion, grande o peque na,
de una funcion senoidal.
3.1. Transformada Wavelet
Como ya se menciono, la transformada de Fourier es una herramienta muy importante dentro de la
ingeniera debido a que permite apreciar las caractersticas de frecuencia de una se nal no visibles en el
dominio del tiempo. Sin embargo, al utilizar esta transformacion, se pierde de vista el comportamiento de la
funcion en el tiempo, ya que las frecuencias observadas corresponden a toda la se nal, cuando en realidad esta
puede tener caractersticas variantes en el tiempo, es decir, puede ser una se nal no estacionaria.
Esta desventaja de la transformada de Fourier proviene del hecho de que utiliza a las funciones sin y cos
como base para la representacion de la se nal, ya que aunque estas funciones tienen una sola frecuencia, no
son localizadas en el tiempo (se extienden periodicamente sobre todo el eje real). Para resolver este problema,
Denis Gabor agrego un factor a la transformada de Fourier, conocido com unmente como ventana, que permite
observar el contenido de frecuencia de una se nal en distintos intervalos de tiempo. Esta modicacion a la
transformada de Fourier es conocida como transformada de Fourier de tiempo corto (STFT) y ha sido aplicada
con exito al procesamiento de se nales de radar o de voz.
34
CAP
_
t
_
dt (3.1)
Debido a que y son reales, la base que se obtiene es redundante y no es de mucha utilidad practica.
Sin embargo, al restringir y a los enteros y elegir una funcion wavelet madre adecuada, se puede obtener
una base ortonormal, es decir, que no presenta redundancia. La expresion para obtener cada wavelet a partir
de la wavelet madre es:
j,k
= 2
j/2
(2
j
t k) (3.2)
Bajo estas condiciones, se habla entonces de la Transformada Wavelet Discreta (DWT). Que es la usada
en el procesamiento de se nales y tratamiento de imagenes.
3.2. Transformada Wavelet Discreta
La transformada wavelet discreta descompone una se nal discreta en dos se nales de la mitad de la longitud
original. Una se nal es una aproximacion a la se nal original y la otra contiene las diferencias de la aproximacion
con respecto a la se nal original. Una parte interesante de la transformacion es que la energa de la se nal se
conserva en las dos subse nales, pero ademas, la mayor cantidad de la energa se concentra en la se nal de
aproximacion. Esto habla de cierta compactacion de la energa.
La gura 3.1 muestra las gracas de una funcion y su descomposicion por medio de la transformada
wavelet. En la graca de la derecha se muestran la aproximacion y los detalles unidos como una sola graca.
La se nal de aproximacion tiene el 99.5980 % de la energa de la se nal original mientras que la se nal de detalles
tiene solo el 0.4020 %.
3.3. Tipos de wavelets mas conocidos y su aplicacion con Matlab
3.3.1. Principales funciones de Matlab para trabajar con la transfomada wavelet
Existen varias familias de wavelets que son utiles en aplicaciones, muchas han sido desarrolladas en los
ultimos a nos. Desde Matlab se puede obtener informacion basica de cada uno de estos tipos con el comando
waveinfo(tipo) donde tipo puede ser uno de los siguientes:
CAP
n
_
1/2
El espacio l
2
consiste de todas las secuencias con norma nita.
La norma de una funcion f(R) R se dene por
|f|
L
2 =
__
R
f(x)
2
dx
_
1/2
De forma semejante al inciso anterior, el espacio L
2
consiste de todas las funcionesf con norma nita.
Usualmente se usa solo el smbolo || al representar la norma de una secuencia o funcion, la norma a
utilizar se entiende por el contexto.
Una secuencia de funciones f
1
, f
2
, . . . converge a la funcion f si la diferencia f
n
f se puede hacer
arbitrariamente peque na haciendo crecer a n, esto se representa como |f
n
f| 0 cuando n .
Una serie de funciones converge a f si la secuencia S
n
de sumas parciales converge a f. Una suma
parcial se dene como S
n
(x) =
n
j=1
f
i
(x)
La base de wavelets de Haar fue por mucho tiempo la unica conocida con la propiedad de ser ortogonal,
sin embargo, se requeria de otras bases de wavelets que ademas fueran continuas y diferenciables. En 1985
Meyer y Mallat desarrollaron el analisis multiresolucion, que ayudo a crear y entender estas nuevas bases.
El analisis multiresolucion es la formalizacion de las ideas intuitivas de los terminos aproximacion y detalles
usados en la seccion 3.2. Formalmente, un analisis multiresolucion es una secuencia de subespacios cerrados
V
n
, n Z, subconjuntos de L
2
(1), tales que
cumplen con la jerarqua de contenciones
V
2
V
1
V
0
V
1
V
2
(3.3)
CAP
n
V
n
= 0,
_
n
V
n
= L
2
(Z) (3.4)
esto quiere decir que la unica funcion que pertenece a cada V
n
es la funcion 0 (ninguna funcion constante
aparte de 0 pertenece a L
2
(1)), y que el espacio L
2
(1) es generado por las combinaciones lineales de
los conjuntos V
n
.
cada uno de estos subconjuntos es una contraccion del otro
f(x) V
n
f(2
n
x) V
0
, n Z (3.5)
por ejemplo, si una funcion f(x) esta en V
1
, entonces la funcion f(2x) (una contraccion de f(x) a la
mitad) esta en V
0
.
existe una funcion de escalamiento V
0
cuyas translaciones enteras generan a V
0
,
V
0
= f L
2
(1) [ f(x) =
k
(x k), k Z (3.6)
Entonces, como cada elemento del espacio V
n
es la contraccion de un elemento de V
0
, puede decirse que
todos estos conjuntos son iguales cuando se ignora su escala, y que conforme subimos en la jerarqua de
contencion nos encontramos con espacios con mas detalles (o con frecuencias mayores).
El analisis multiresolucion conduce a una descomposicion ortogonal del espacio L
2
(1). Como V
n
V
n1
,
se puede obtener el complemento ortogonal de V
n
en V
n1
representado por W
n
, entonces
W
n
V
n
= V
n1
(3.7)
a su vez, V
n
puede ser descompuesto como
W
n+1
V
n+1
= V
n
(3.8)
siguiendo este procedimiento se tiene que
_
m
k=n
W
k
_
V
m
= V
n1
, m n (3.9)
y si se toma la suma sobre todos los enteros se puede generar a todos los conjuntos V
n
n
W
n
=
_
n
V
n
= L
2
(1) (3.10)
Esto nos indica que el espacio L
2
(1) puede ser descompuesto como una suma directa de espacios W
n
, y
entonces cualquier funcion en L
2
(1) se puede representar como una combinacion lineal de elementos de W
n
,
que contienen elementos de frecuancias diferentes.
CAP
IA 53
[15] Eduardo Bayro Corrochano, Multi-resolution Image Analysis Using the Quaternion Wavelet Transform,
en: Numerical Algorithms 39, eds. (Springer, 2005.) Disponible en internet.
[16] Joan Lasenby, Geometric Algebra: Applications in Engineering:
[17] Bert J uttler, Visualization of Moving Objects Using Dual Quaternion Curves, en: Computer & Graphics,
(Elsevier, 1994.) Disponible en internet.
[18] Ken Shoemake, Animating Rotations with Quaternion Curves, en: Computer Graphics (Proc. of SIG-
GRAPH 85), (1985). Disponible en internet.
[19] Myoung-Jun Kim, Myoung-Soo Kim y Sung Yong Shin A General Construction Scheme for Unit Quater-
nion Curves with Simple High Order Derivatives, en: , (1995). Disponible en internet.
[20] Oene Bottema, Bernard Roth, Theoretical Kinematics, Dover Publications, EE.UU. 1979.
[21] Les Piegl, The NURBS Book, Springer-Verlag, Berlin. 1995.
[22] Gregory Nielson, -Quaternion Splines for the Smooth Interpolation of Orientations, en: IEEE Trans-
actions on visualization and computer graphics Vol. 10. No. 2, (2004).
[23] Walker, James S., A Primer on Wavelets and their Scientic Applications, Chapman & Hall/CRC,
EE.UU. 1999.
[24] Alpert, Bradley K., Wavelets and Other Bases for Fast Numerical Linear Algebra, publicado en
WaveletsA Tutorial in Theory and Applications editado por Charles Chui, Academic Press Inc., EE.UU.
1992.
[25] Olivier Rioul, Martin Vetterli, Wavelets and Signal Processing, 1991.
[26] Alan V. Oppenheim, Ronald W. Schafer, Tratamiento de Se nales en Tiempo Discreto, segunda edicion,
Prentice Hall, Espa na 2000.
[27] Michael Misiti, Yves Misiti Georges Oppenheim, Jean-Michel Poggi, Wavelet Toolbox for use with Matlab.
[28] Gilbert Strang, Truong Nguyen, Wavelets and Filter Banks, Cambridge Press, EE.UU. 1996.