104
Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte final de Proyecto de Investigación Para obtener el Título de: Licenciado en Computación Presentan: Cruz Miguel Mario Alberto Guzmán Vázquez Jorge Ríos Perea Salvador Serrato Matínez Carlos División de Ciencias Basicas e Ingenieria México, D.F. 1

Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Embed Size (px)

Citation preview

Page 1: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Wavelet´s, Quaterniones y Algebra GeometricaAplicadas al Tratamiento de Imagenes

Reporte final de Proyecto de Investigación

Para obtener el Título de:Licenciado en Computación

Presentan:Cruz Miguel Mario AlbertoGuzmán Vázquez JorgeRíos Perea SalvadorSerrato Matínez Carlos

División de Ciencias Basicas e Ingenieria

México, D.F.

1

Page 2: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Nuestro agradecimiento al:

Dr. Leonardo Traversoni Domínguez

Por todo el apoyo y motivación que nos proporciono para la elaboración deeste proyecto de investigación.Por mostrarnos la aplicación en nuestro mundo real de las herramientas matemáti-cas adquiridas a lo largo de la licenciatura.Por su gran paciencia, por sus consejos, asi como sus correcciones y sugerencias.

2

Page 3: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Dedicatoria:

A mi Madre: Por ser la mujer que me dio la vida, que me enseño a andar en estemundo. A Ti madre que siempre estas para respaldarme en mis decisiones, paralevantarme de mis tropiezos, por que siempre me has dado la energía y corajenecesarios para que nunca me de por vencido en lo que me proponga. Por quetodo lo que soy y seré, es gracias a tí, a tus enseñanzas y a todo el amor que medas. Eres y serás la mujer mas importante en mi vida. Gracias por ser mi Madre.

A mi Abuela: Por ser mi segunda madre, por todo el amor y apoyo incondicionalque me ha dado a lo largo de mi vida. Te amo abuela.

A mi hermanos: Amadeo, Erika, Pablo, Abraham, por compartir conmigo lavida, por su complicidad, por su amor, por ser mis amigos. Los amo con todo micorazón.

A mis niños: Tymo, Gustavo, Luís, Diana, Abril, por la energía y felicidadque le inyectan a mi vida.

Y sobre todo a Jehová, el Creador de los cielos y la Tierra, por todas las bendi-ciones, y por permitirme vivir rodeado de tantas personas tan maravillosas comoson mi familia y mis amigos.

Jorge Guzmán Vázquez.

3

Page 4: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Dedicatoria:

A mis padres: Por darme la vida, por el amor, el cariño y el apoyo, que mehan brindado durante mis años de existencia, por confiar en mí y respetar misdecisiones.

A Mary: Por todo el amor, paciencia y comprensión que me ha demostradodesde que emprendimos juntos este camino.

A mi hija: Porque a su corta edad, siempre me dibuja una sonrisa, siendo tu laluz de mi camino.

A mis hermanos: Por sus consejos, apoyo y amistad que siempre me han brinda-do.

Y a todas las personas que de alguna forma han contribuido para alcanzar estemomento, con sinceridad gracias.

Salvador Ríos Perea.

4

Page 5: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Dedicatoria:

A Dios: Por estar conmigo siempre y permitirme vivir en este mundo.

A mis padres: Por haberme dado la vida, por su gran amor, su enorme apoyoincondicional, su comprensión, consejos, su eterna paciencia y su confianza en mi.

A mis hermanos: Por el apoyo moral a lo largo de mi vida.

A mis sobrinos: Por regresarme la alegría de la inocencia.

A Jorge Cruz: Por ser un buen amigo, por su gran apoyo, ayuda y consejosa lo largo de mi carrera y de mi vida.

A Jaime Cruz: Por sus sabios consejos, por ser un ejemplo de dedicación ycrecimiento y por haber sido como mí segundo padre.

A Amalia Cruz: Por su cariño y por mostrarme que a pesar de los malos mo-mentos se puede ser feliz.

A mis compañeros de equipo: Por ser compañeros formidables y grandesamigos.

Mario Alberto Cruz Miguel.

5

Page 6: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Dedicatoria:

A mis padres: Que con su apoyo incondicional me han ayudado en las buenasy en las malas. Hasta el fin de la carrera y a quienes debo la determinación dealcanzar los objetivos propuestos sin importar que tan lejos esten de uno, por sugran ejemplo de superación personal y por sus grandes consejos.

A Magali: Que me ha dado la fuerza para concluir esta última etapa de lacarrera, y me ha brindado también su apoyo incondicional, quien siempre meaconseja y esta conmigo, y a quien amo mucho.

A mis compañeros del proyecto: En los que he encontrado una agradableamistad.

A nuestro asesor Leonardo Traversoni: Que nos acepto para la realizaciónde este proyecto y siempre nos estimuló para concluirlo.

Carlos Serrato Martínez.

6

Page 7: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Índice

1. Los Wavelets 10

1.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.2. Análisis Multiresolución . . . . . . . . . . . . . . . . . . . . . . . . 111.3. Una aplicación de filtrado . . . . . . . . . . . . . . . . . . . . . . . 13

2. Los Cuaternios 15

2.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.2. Multiplicación de Cuaternios . . . . . . . . . . . . . . . . . . . . . 162.3. Modulo de un Cuaternio . . . . . . . . . . . . . . . . . . . . . . . 172.4. Una aplicacion en MatLab . . . . . . . . . . . . . . . . . . . . . . 182.5. Conjugado de un cuaternio . . . . . . . . . . . . . . . . . . . . . . 192.6. Giro de un punto alrededor de un eje del espacio usando

cuaternios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3. Geometría Proyectiva 26

3.1. Conceptos básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.1.1. Reseña Historica . . . . . . . . . . . . . . . . . . . . . . . . 263.1.2. Espacio Proyectivo . . . . . . . . . . . . . . . . . . . . . . 273.1.3. Coordenadas Homogéneas . . . . . . . . . . . . . . . . . . . 303.1.4. Proyectividad . . . . . . . . . . . . . . . . . . . . . . . . . 333.1.5. Ecuaciones de la proyectividad . . . . . . . . . . . . . . . . 353.1.6. Dualidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.1.7. Plano proyectivo . . . . . . . . . . . . . . . . . . . . . . . . 36

3.2. Transformaciones Proyectivas . . . . . . . . . . . . . . . . . . . . . 403.2.1. Afinidades . . . . . . . . . . . . . . . . . . . . . . . . . . . 403.2.2. Semejanzas . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

7

Page 8: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

3.2.3. Isometrías . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.2.4. Proyectividades . . . . . . . . . . . . . . . . . . . . . . . . 43

4. Algebra Geométrica en la visión por computadora 44

4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444.2. Algebra de Clifford . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.2.1. El producto de vectores de Clifford . . . . . . . . . . . . . . 454.2.2. El producto exterior . . . . . . . . . . . . . . . . . . . . . . 474.2.3. Proyecciones perpendiculares y reflexiones . . . . . . . . . . 484.2.4. Reflexión . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494.2.5. Representación matricial de Cl2 . . . . . . . . . . . . . . . 504.2.6. Producto Geométrico . . . . . . . . . . . . . . . . . . . . . 51

4.3. El álgebra geométrica en el espacio de 3−D y 4−D . . . . . . . . 524.3.1. El espacio 3−D y el álgebra geométrica . . . . . . . . . . . 524.3.2. El álgebra geométrica de 4-D para el espacio proyectivo . . 53

5. Desarrollo de Software 54

5.1. Primer paso: Experimento . . . . . . . . . . . . . . . . . . . . . . 545.1.1. Material y Equipo . . . . . . . . . . . . . . . . . . . . . . . 545.1.2. Desarrollo experimental . . . . . . . . . . . . . . . . . . . . 54

5.2. Desarrollo del software . . . . . . . . . . . . . . . . . . . . . . . . 565.2.1. Construcción de las funciones . . . . . . . . . . . . . . . . . 565.2.2. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

A. Breve introduccion a Matlab 71

A.1. Una Breve introduccion . . . . . . . . . . . . . . . . . . . . . . . . 71A.2. Iniciando con Matlab . . . . . . . . . . . . . . . . . . . . . . . . . 71A.3. Instrucciones Basicas . . . . . . . . . . . . . . . . . . . . . . . . . 73

8

Page 9: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

A.3.1. Creando Matrices . . . . . . . . . . . . . . . . . . . . . . . 73A.3.2. Operadores aritmeticos . . . . . . . . . . . . . . . . . . . . 76

A.4. Graficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79A.4.1. Graficos simples . . . . . . . . . . . . . . . . . . . . . . . . 79A.4.2. Funciones gráficas 2D elementales . . . . . . . . . . . . . . 81A.4.3. Funciones gráficas tridimensionales . . . . . . . . . . . . . . 82

A.5. Elementos de programación . . . . . . . . . . . . . . . . . . . . . . 83A.5.1. Instrucciones Basicas . . . . . . . . . . . . . . . . . . . . . 84

B. listado del código 88

9

Page 10: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

1. Los Wavelets

1.1. Introducción

De alguna manera puede decirse que las wavelets nacieron en los 80’s como fru-to de la colaboración entre ingenieros, físicos y matemáticos. Ellas aparecen comouna herramienta útil en diversas áreas como análisis de señales, caracterizacionesde singularidad, análisis de comportamientos fractales, análisis numérico. La prin-cipal característica a la que se debe su éxito es que juegan el papel de base conuna apropiada escala de tiempo y pueden ser consideradas como un microscopioen diferentes situaciones.

Las wavelets y el análisis de multiresolución constituyen una potente her-ramienta para afrontar problemas fundamentales en el tratamiento de imágenes.Entre ellos se encuentran la reducción del ruido, la compresión (de vital impor-tancia tanto en la transmisión de grandes cantidades de datos como en su alma-cenamiento) o la detección de determinados objetos en ciertos tipos de imágenes.Esta moderna teoría ha experimentado un gran desarrollo en las dos últimasdécadas mostrándose muy eficiente donde otras técnicas, como por ejemplo latransformada rápida de Fourier, no resultaban satisfactorias.

No existe una transformada wavelet única, ni que resuelva todos los proble-mas, a partir de la modelación del problema y de un análisis a priori del tipo deimagen tratada y del objetivo que se pretenda (compresión, eliminación del ruido,segmentación de la imagen,...) se busca la familia de wavelets (Haar, Daubechies,Coiflets,...) que mejor coincida con las características de la imagen a estudiar.

Existen dos tipos de wavelets las continuas y las discretas. El tratamiento conwavelets discretas permite su aplicación directa a procesos computacionales. Laswavelets continuas presentan por una parte la dificultad de su manejo al tener queevaluar un gran número de integrales y tener en consecuencia una redundancia

10

Page 11: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

de información, pero por otra parte permiten la flexibilidad de poder adaptarsea situaciones en las que las discretas no dan un resultado satisfactorio. Conc-retamente en el tratamiento de imágenes digitales se precisa realzar detalles ydetectar texturas analizando la imagen desde distintos ángulos, lo cual es posiblehacer con las wavelets continuas al disponer de un mayor número de parámetrosque posteriormente se pueden discretizar para su tratamiento computacional.

1.2. Análisis Multiresolución

La base de wavelets de Haar fue por mucho tiempo la única conocida con lapropiedad de ser ortogonal, sin embargo, se requeria de otras bases de wavelets queademás fueran continuas y diferenciables. En 1985 Meyer y Mallat desarrollaronel análisis multiresolución, que ayudó a crear y entender estas nuevas bases. Elan´alisis multiresolución es la formalización de las ideas intuitivas de los términosaproximación y detalles usados cuando se comienzan a explicar las aplicaciones delos wavelets al procesamiento de señales. Formalmente, un análisis multiresoluciónes una secuencia de subespacios cerrados Vn, n ∈ Z, subconjuntos de L2(R), talesque :

cumplen con la jerarquía de contenciones

. . . ⊃ V2 ⊃ V1 ⊃ V0 ⊃ V−1 ⊃ V−2 . . .

su intersección es trivial y la cerradura de su unión es L2(R)

⋂n

Vn = {0} ,⋃n

Vn = L2(Z)

esto quiere decir que la unica función que pertenece a cada Vn es la funcion0(ninguna funcion constante aparte de 0 pertenece a L2(R) es generado por

11

Page 12: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

las combinaciones lineales de los conjuntos Vn).

cada uno de estos subconjuntos es una contracción del otro

f(x) ∈ Vn ⇔ f(2nx) ∈ V0, n ∈ Z

por ejemplo, si una funcion f(x) esta en V1, entonces la función f(2x) (unacontracción de f(x) a la mitad) esta en V0.

existe una funcion de escalamiento Φ ∈ V0 cuyas traslaciones enteras generana V0,

V0 ={f ∈ L2(R)|f(x) =

∑αkΦ(x− k), k ∈ Z

}Entonces, como cada elemento del espacio Vn es la contracción de un elementode V0, puede decirse que todos estos conjuntos son iguales cuando se ignorasu escala, y conforme subimos la gerarquía de contención nos encontramoscon espacios con mas detalles(o con frecuencias mallores).

El análisis multiresolución conduce a una descomposición ortogonal del es-pacio L2(R). Como Vn ⊂ Vn−1, se puede obtener el complemento ortogonalde Vn en Vn−1 representado por Wn, entonces:

Wn ⊕ Vn = Vn−1

a su vez, Vn puede ser descompuesto como:

Wn+1 ⊕ Vn+1 = Vn

12

Page 13: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

siguiendo este procedimiento se tiene que:(m⊕

k=n

)Vm = Vn−1, m ≥ n

y si se toma la suma sobre todos los enteros se puede generar a todos losconjuntos Vn ⊕

n

Wn =⋃n

Vn = L2(R).

1.3. Una aplicación de filtrado

Con el fin de ilustrar el comportamiento de la descomposición realizada por latransformada wavelet, se realizó un pequeño programa de filtrado. El programapuede implementar filtros pasobajo y pasoalto dependiendo de que parte de ladescomposición que anulemos.Las figuras 2 a 4 muestran los resultados de la ejecución del programa con laimagen de la figura 1.

Figura 1: Imagen utilizada para el filtrado

13

Page 14: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Figura 2: En esta imagen se muestra el filtrado paso alto de la imagen original con un nivel deatenuacón alto, puede observarse que los componentes de alta frecuencia resaltan (bordes)

Figura 3: En esta imágen se muestra el filtrado paso bajo de la imagen original con bajo nivelde atenuación de los componentes de alta frecuencia

Figura 4: En esta imágen se muestra el filtrado paso bajo de la imagen original con alto nivelde atenuación en los componentes de altas frecuencias

14

Page 15: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

2. Los Cuaternios

2.1. Introducción

Los cuaterniones fueron descubiertos por William Rowan Hamilton en 1843.Hamilton buscaba formas de extender los números complejos (que pueden inter-pretarse como puntos en un plano) a un número mayor de dimensiones. No pudohacerlo para 3 dimensiones, pero para 4 dimensiones obtuvo los cuaterniones.Los conjuntos de numeros que conocemos son:

los números naturales N,

los números enteros Z,

los números racionales Q,

los números reales R y

los números complejos C

Cada uno de estos conjuntos extiende al anterior y su construcción está mo-tivada por la necesidad de resolver ecuaciones. Concretamente, para resolver lasecuaciones es necesaria la construcción de Z,Q,R y C, respectivamente. Existe,sin embargo, otro conjunto de números que extiende a C cuya construcción noestá motivada en la resolución de una ecuación. Este conjunto se denota por H, en honor a su creador, el irlandés William Rowan Hamilton (1805-1865) y esllamado el conjunto de cuaternios.

Los cuaternios son la extensión de los números complejos a una cuarta di-mensión. Se les añade los elementos j y k. Lamentablemente, como demostró elmatemático del siglo XIX Froebius, la búsqueda de números de más de 4 dimen-siones que cumplan todas las propiedades de los reales es vana. En este conjuntode números se pierde la propiedad conmutativa de la multiplicación.

15

Page 16: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Un cuaternio es un conjunto de cuatro números. Un ejemplo de cuaternio puedeser :

q = (w, x, y, z)

o bien:q = w + x× i+ y × j + z × k

tambien se puede expresar como un escalar mas un vector, por ejemplo, dado elescalar: w y el vector: v = (x× i+ y × j + z × k) el cuaternio resultante es:

q = w + v

que aveces tambien se escribe así:

q = (w, v)

o asi:q = (w, x, y, z).

2.2. Multiplicación de Cuaternios

Los cuaternios se multiplican de acuerdo con las siguientes reglas:

−1 = i× i = j × j = k × k = i× j × k

16

Page 17: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

i× j = −j × i = k

j × k = −k × j = i

k × i = −i× k = j

El producto de dos cuaternios:Sean:

q1 = w1 + x1 × i+ y1 × j + z1 × k

y

q2 = w2 + x2 × i+ y2 × j + z2 × k

de acuerdo con las anteriores reglas:q1 × q2 = (w1 × w2 − x1 × x2 − y1 × y2 − z1 × z2)

+(w1 × x2 + x1 × w2 + y1 × z2 − z1 × y2)× i

+(w1 × y2 − x1 × z2 + y1 × w2 + z1 × x2)× j

+(w1 × z2 + x1 × y2 − y1 × x2 + z1 × w2)× k

2.3. Modulo de un Cuaternio

‖g‖ es el modulo de q. Es un número y se define de forma similar a como sedefine el módulo de un vector:

‖g‖ =√w × w + x× x+ y × y + z × z.

Dado un cuaternio cualquiera, por ejemplo: q = w + x × i + y × j + z × k,

17

Page 18: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

existe un cuaternio unitario qu tal que:

qu =w

‖g‖+

x

‖g‖ × i+

y

‖g‖ × j+

z

‖g‖ × k

El módulo de un cuaternio unitario así definido es siempre uno, como se de-muestra a continuación:

‖qu‖ =

√w

w

w2 + x2 + y2 + z2+ x

x

w2 + x2 + y2 + z2+ y

y

w2 + x2 + y2 + z2+ z

z

w2 + x2 + y2 + z2=

√w2 + x2 + y2 + z2

w2 + x2 + y2 + z2= 1

2.4. Una aplicacion en MatLab

El siguiente código realiza la multiplicación de dos cuaternios. El programapide al usuario que ingrese los cuaternios y muestra el resultado posteriormente.

% programa que multiplica dos cuaternios q=qw+qxi+qyj+qzk

% ingresados por el usuario

% Autor: Equipo de Computación

q1=input(’ingresa los valores del 1 cuaternio [w x y z]:’ );

q2=input(’ingresa los valores del 2 cuaternio [w x y z]:’ );

%la multiplicación se realiza conforme a las reglas vistas

w=(q1(1)*q2(1)-(q1(2)*q2(2))-(q1(3)*q2(3))-(q1(4)*q2(4)));

x=((q1(1)*q2(2))+(q1(2)*q2(1))+(q1(3)*q2(4))-(q1(4)*q2(3)));

y=((q1(1)*q2(3))-(q1(2)*q2(4))+(q1(3)*q2(1))+(q1(4)*q2(2)));

z=((q1(1)*q2(4))+(q1(2)*q2(3))-(q1(3)*q2(2))+(q1(4)*q2(1)));

%resultado de la multiplicación

q3=[w x y z];

18

Page 19: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

disp (’q3= ’);

disp (q3);

Ahora el código anterior lo modificamos para que trabaje como función, semuestra en seguida:

%Equipo de computación

%programa que multiplica 2 cuaternios

% la función recibe como parámetro la entrada de dos cuaternios q1 y q2

function q3=producto_cuaternios(q1,q2)

%la multiplicación se realiza conforme a las reglas vistas

w=(q1(1)*q2(1)-(q1(2)*q2(2))-(q1(3)*q2(3))-(q1(4)*q2(4)));

x=((q1(1)*q2(2))+(q1(2)*q2(1))+(q1(3)*q2(4))-(q1(4)*q2(3)));

y=((q1(1)*q2(3))-(q1(2)*q2(4))+(q1(3)*q2(1))+(q1(4)*q2(2)));

z=((q1(1)*q2(4))+(q1(2)*q2(3))-(q1(3)*q2(2))+(q1(4)*q2(1)));

&el resultado q3 de la multiplicación de ambos cuaternios

q3=[w x y z];

2.5. Conjugado de un cuaternio

El conjugado de un número complejo a+b×i es a−b×i, entonces el conjugadode un cuaternio q = w+x×i+y×j+z×k es q′ donde q′ = w−x×i−y×j−z×k.El producto de un número complejo por su conjugado es: (a+ b× i)(a− b× i) =

a× a+ b× b.

19

Page 20: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Por lo tanto el conjugado de un cuaternio por su conjugado de a cuerdo conlas reglas de multìplicación es:

q× q′ = (w+x× i+ y× j+ z×k)(w−x× i− y× j− z×k) = w2 +x2 + y2 + z2

Vemos que el producto de un cuaternio por su conjugado es un número, y queeste número es el módulo del cuaternio al cuadrado:

q × q′ = ‖q‖ × ‖q‖ = w2 + x2 + y2 + z2

Si operamos con cuaternio unitarios qu, es claro que:

qu × q′u = ‖qu‖ × ‖qu‖ = 1

Pero sabemos que tambièn qu

ques igual a uno, asi que: q′u = 1

qu(tambien se suele

denotar 1qu

como q′u−1) es decir, que el conjugado de un cuaternio unitario es

tambien su inverso. O de otra forma, si qu es un cuaternio unitario:

qu = w + x× i+ y × j + z × k

entonces:1

qu= q′u−1

es igual a

q′u = (w + x× i+ y × j + z × k)(w − x× i− y × j − z × k)

El inverso de un cuaternio unitario es igual a su conjugado.Los siguientes códigos se realizaron para un mejor entendimiento de las opera-

ciones:

20

Page 21: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

2.6. Giro de un punto alrededor de un eje del espacio usando

cuaternios

Representar un punto del espacio en forma de cuaternio es muy fàcil, dado elvector:

v = (x, y, z)

el cuaternio que le corresponde es:

q = (0, x, y, z)

es decir, un cuaternio que contiene al vector pero cuya magnitud w es igual a 0.Un cuaternio construido como veremos a continuación de alguna manera repre-

senta la rotación de un punto cualquiera alrededor de un eje del espacio arbitrario.Consideremos un eje del espacio que pasa por el origen (vector): v = (x, y, z) yconsideremos también un punto arbitrario del espacio P que queremos girar θradianes alrededor de ese eje: P = (x0, y0, z0). Ahora generemos un cuaterniounitario a partir del eje y del ángulo, de esta manera:

q = qw + qx× i+ qy × j + qz × k

donde:qw = cos(

θ

2)

qx =±sen(θ

2)× x

‖v‖

qy =±sen(θ

2)× y

‖v‖

21

Page 22: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

qz =±sen(θ

2)× z

‖v‖es decir:

q = (cos(θ

2),±sen(

θ

2)× v

‖v‖)

Es muy fácil mostrar que un cuaternio generado de esta manera es unitario, estecuaternio generado a partir del eje (o vector) v y el ángulo θ, obtenemos el sigu-iente resultado:

P ′ = q × (0, P )× q−1

Es decir que el punto P una vez rotado, esto es P’, viene dado por este simpleproducto de cuaternios. Esto se podría hacer también con cuaternios q no unitariospero, puesto que hay que elegir, y puesto que es muy fácil calcular el inverso deun cuaternio unitario, es mejor hacerlo con unitario.

El producto citado representa la rotación de P alrededor de un eje que pasapor el origen. Como antes, si lo que queremos es girar el punto P , θ radianes,alrededor de un eje paralelo a AB que pasa por el origen, la fórmula es:

P ′ = A+ f(P − A)

, donde:f(P ) = q × (0, P )× q−1

es decir:P ′ = A+ q × (0, P − A)× q−1

A continuación presentaremos el código del programa que se realizó para larotación de un punto al rededor de un eje usando cuaternios.El programa pide alusuario que ingrese las coordenadas del punto que se quiere rotar y los grados derotación, el programa grafica al final la trayectoria del punto que se ha rotado.

22

Page 23: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Las figuras [5] y [6] mustran la ejecución del programa.

%Autor: Equipo Computacion

%programa que rota un punto alrededor de un eje usando cuterniones

punto=input(’Ingrese las coordenadas del punto...

a rotar [x y z]: ’);

a=input(’Ingrese las coordenadas del punto inicial del...

vector [x y z]: ’);

b=input(’Ingrese los grados de rotacion del punto [x y z]: ’);

%calculo de la magnitud del vector

vector=b-a;

vector_modulo=sqrt(vector(1)*vector(1)+vector(2)*vector(2)...

+vector(3)*vector(3));

%aqui se guarda la resta del punto ingresado con el vector a

p_dif_a=punto-a;

for i=1:grados %calculamos y dibujamos la rotacion grado por grado

%conversion de grados a radianes

teta=i*(pi/180);

coseno=cos(teta/2);

seno=sin(teta/2);

%q(i) se construye el cuaternio

q(1)=coseno;

23

Page 24: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

q(2)=(seno*(vector(1)/vector_modulo));

q(3)=(seno*(vector(2)/vector_modulo));

q(4)=(seno*(vector(3)/vector_modulo));

%calculamos el conjugado q’ del cuaternio

q_conjugado=[coseno -q(2) -q(3) -q(4)];

cuaternio=[0 p_dif_a];

A=[0 a];

aux=producto_cuaternios(q,cuaternio);

aux1=producto_cuaternios(aux,q_conjugado);

%P’= A + q*(0, P -A)*q-1 formula para rotar un punto

p=A+aux1;

%puntos que generan el vector

s1=[a(1) b(1)];

s2=[a(2) b(2)];

s1=[a(3) b(3)];

plot3(s1,s2,s3,’m’)%dibujamos el eje de rotacion

grid on

xlabel(’eje x’);

ylabel(’eje y’);

zlabel(’eje z’);

hlod on

plot3(punto(1),punto(2),punto(3),’o’) %punto a rotar

24

Page 25: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

plot3(p(2),p(3),p(4),’*’)%punto rotadi

%pause(1)

end;

hold off

Figura 5: La rotación se hace sobre el eje (color magenta), la estrella representa el punto departida y el rombo el punto final.

Figura 6: La rotación se hizo de 180 grados

25

Page 26: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

3. Geometría Proyectiva

3.1. Conceptos básicos

3.1.1. Reseña Historica

La geometría proyectiva tiene sus orígenes en la época renacentista, en la cuallos pintores tratan de reflejar en un lienzo lo que sus ojos perciben del mundo queles rodea.

Es así que pintores, arquitectos, ingenieros se empeñaron en encontrar un mod-elo matemático que les permitiera representar el mundo tridimensional (real) enun lienzo (forma bidimensional). Así de la pintura del renacimiento nacen con-ceptos como el de proyección, perspectiva, sección, etc. y con ello la GeometríaProyectiva.

Al estar familiarizados con la Geometría Euclidiana, es un hecho (en el planoEuclidiano) que los lados de los objetos tienen longitud, la intersección de líneasdeterminan ángulos entre ellas, o dos líneas son llamadas paralelas en el plano sínunca se intersectan, más aún estas propiedades no cambian a aplicarse transfor-maciones como la rotación o traslación. Pero al estudiar las propiedades geométric-as de la proyección-sección, las propiedades antes mencionadas no se cumplen. Asísurge la necesidad de encontrar propiedades geométricas de la proyección-sección.

El resultado que marca el principio de la Geometría Proyectiva se debe a Ger-ard Desargues (1591-1661) el cual encuentra una relación geométrica entre untriangulo ABC y el triangulo imagen A’B’C’ obtenido por proyección y sección.B. Pascal (1623-1662) obtuvo interesantes aplicaciones de los métodos proyectivosen el estudio de las cónicas. Tuvieron que pasar cerca de 200 años para que se re-alizarán aportaciones decisivas en pos de la Geometría Proyectiva, uno de los masdestacados en este periodo fue Poncelet (1788-1867) quien introdujo el principio

26

Page 27: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

de dualidad para la geometría proyectiva. K. Von Staudt (1798-1867) contribuyecon la primera fundamentación axiomática. La introducción de herramientas alge-braicas se debe a A. Mobius (1790-1868) y a J. Plucker (1801-1868). El trabajo deDesargues, Poncelet y seguidores condujo a clasificar las propiedades Geométricasen dos categorías: Las propiedades métricas, en las que intervienen las medidasde las distancias, de los ángulos, y las propiedades descriptivas, en las que sólo setrata la relación de las posiciones de los elementos geométricos entre sí.

La distinción de los dos tipos de propiedades geométricas, al menos en el ca-so de las figuras planas se aclaran más cuando se considera el hecho de que laspropiedades descriptivas no se alteran cuando se somete a la figura a una proyec-ción, en tanto que las métricas pueden no verificarse cuando la figura ha sidoproyectada.

El estudio de las propiedades descriptivas de las figuras geométricas se conocepues como Geometría Proyectiva.

3.1.2. Espacio Proyectivo

Podemos imaginar el plano proyectivo, como el plano que representa una pin-tura, en el cual, el ojo del pintor es el origen O en R3, cada punto proyectivo A′

es el punto del lienzo de la pintura definido por una recta OA.Enunciamos a continuación algunas definiciones formales del espacio proyectivo

y algunos de sus resultados, los cuales nos ayudarán a comprender la naturalezadel problema, visto desde el punto de vista del algebra lineal, también trataremosde justificar intuitivamente algunos conceptos, para después utilizar métodos pu-ramente geométricos y obtener resultados importantes que nos servirán para lareconstrucción de objetos a partir de imágenes.

27

Page 28: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Definición 3.1. Llamamos espacio proyectivo asociado a E, de dimensión n, alconjunto cociente E−{ ~O}/− (conjunto de todas las rectas vectoriales de E menosel vector { ~O}), a cuyos elementos se les denomina puntos del espacio proyectivo.

Donde: E es un espacio vectorial de dimensión n + 1, sobre un campo K

conmutativo. En E-{ ~O} se establece la siguiente relación binaria:

x, y ∈ E − { ~O} donde x ≈ y ⇔ ∃λ ∈ K − { ~O} tal que y = λx

Notación: El espacio proyectivo E-{ ~O}/- lo denotaremos por Pn(E).Observamos que cuando n = 0, E es de dimensión 1, E-{ ~O}/- consta de una

sola clase. Esto es, el espacio proyectivo P0(K) tiene un solo punto.

Cuando n = 1, P1(K) es la recta proyectiva.Cuando n = 2, P2(K) es el plano proyectivo.

Intuitivamente podemos justificar la definición anterior de espacio proyectivo.Consideremos un plano π y las rectas r y r′, escojamos un punto O sobre r′, acada punto A de r le corresponde la recta a ≡ OA que se proyecta desde O. Setiene así una corresppondencia entre los puntos de la recta r y las rectas del az conbase en O. Esta correspondencia no es biunívoca, pues la recta r′, paralela a r,no le corresponde nungún punto de r. Para que la correspondencia sea biunívocadecimos que a la recta r′, le corresponde también un punto, al cual se le llamapunto impropio o punto del infinito a la recta.

Si a los puntos de la recta r se le añade el punto impropio, se tiene la recta

proyectiva. Esto es equivalente al conjunto de rectas del plano que pasan por unpunto .

28

Page 29: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Figura 7: Recta proyectiva

De manera similar para el espacio R3, consideremos 2 planos π y π′ y un puntoO exterior a π, pero que esta en π′. Hagamos corresponder a cada punto A de πla recta a ≡ OA que lo proyecta desde O. A cada punto de π le corresponde unarecta, pero esta correspondencia no es biunívoca, pues a las rectas por O paralelasa π (que están en el plano π′ paralelo a π por O) no le corresponde ningún puntoen π.

Figura 8: Plano proyectivo

Para hacer que la correspondencia sea biyectiva, convenimos que, a cada rectaque pasa por O paralela a π le corresponde un punto impropio o punto del

infinito del plano π(p→ P∞, q → Q∞).Se puede decir que las rectas paralelas tienen un punto impropio o del infinito

común.El conjunto de los puntos impropios de π corresponden a las rectas contenidas

29

Page 30: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

en π′ que pasan por O y como a los planos por O corresponden rectas de π, esnatural decir que los puntos impropios constituyen la recta impropia o recta

al infinito del plano π.Si a los puntos del plano π se les añaden los puntos impropios, se tiene el

plano proyectivo: Es equivalente al conjunto de rectas que pasan por un puntodel espacio.

3.1.3. Coordenadas Homogéneas

Las consideraciones hechas en la sección anterior pueden generalizarse en dosdirecciones:

1. Aumentando el número de dimensiones.

2. Considerando conjuntos de puntos mas generales,que los que, constituyen larecta y el plano ordinario.

Para cualquier punto P de coordenadas cartesianas (x, y) consideremos laterna (x0, x1, x2) definidas por :

x0 = λ, con λ 6= 0, x1 = λx, x2 = λy.

Resulta entonces:

1. Para cualquier punto P de coordenadas cartesianas (x, y) queda definidasalvo una constante de proporcionalidad, la terna (x0, x1, x2),con x0 6= 0, mediante:

x1 = xx0, x2 = yx0.

2. Cualquiera que sea la terna (x0, x1, x2) de números reales o cualquiera desus proporcionales, con x0 6= 0, determina un único punto de coordenadascartesianas (x, y) = (x1

x0 ,x2

x0 ).

30

Page 31: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

A este nuevo sistema de coordenadas se le denomina Coordenadas Ho-

mogéneas en el plano, que también lo podemos extender para n dimensiones,donde n > 1.

Así, para pasar de coordenadas cartesianas a homogéneas solo basta formaruna terna añadiéndole un 1 al par (x, y), para obtener (1, x, y)

Los puntos del infinito tienen la siguiente representación en coordenadas ho-mogéneas:

Sea la recta r en el plano determinada por un punto P (x0, y0) y el vectordirector (a, b). Su ecuación paramétrica será:

x = x0 + ta, y = y0 + tb.

Sea Q un punto de r distinto de P . Las coordenadas homogéneas de Q serán:

(x0, x1, x2) = (1, x0 + ta, y0 + tb),

ó cualquier terna proporcional así:

(x0, x1, x2) = (1

t,x0

t+ a,

y0

t+ b)

Cuando el punto Q se aleja indefinidamente de P , la primera componente desus coordenadas homogéneas tiende a cero. Por definición cuando x0 = 0, se diceque el punto Q es el punto al infinito de la recta r.

Se ha dado así un significado geométrico a las ternas (0, x1, x2), donde x1,x2 no son simultáneamente nulos. La única terna que no tiene significado es la(0, 0, 0).

Definición 3.2. : Sea E un espacio vectorial de dimensión n+ 1 sobre un cam-po conmutativo K y Pn(E) el espacio proyectivo asociado a E. Sea además ε =

{e0, e1, e2, . . . , en} una base de E. Para todo ~x ∈ E−{ ~O}, sean (x0, x1, x2, . . . , xn) ∈

31

Page 32: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Kn+1 las componentes de ~x respecto a la base ε : x = x0e0 + x1e1 + . . .+ xnen =∑ni=0 xiei. Entonces, a la (n+1)-tupla (x0, x1, . . . , xn) se le da el nombre de Co-

ordenadas Homogéneas del punto X = φ(~x) ∈ P (E), con respecto a la base εde E.

Proposición 3.1. : Para que (xo, x1, . . . , xn), (y0, y1, . . . , yn) sean las coorde-nadas homogéneas de un mismo punto con relación a la misma base ε es necesarioy suficiente que exista λ ∈ K − {~0} tal que yi = λxi para (i = 0, 1, 2, . . . , n).

Recta Proyectiva

Proposición 3.2. : Por dos puntos distintos de P (E) pasa una solo una rectaproyectiva.

Definición 3.3. : Cuando varios puntos pertenecen a una misma recta se diceque son colineales.

Plano Proyectivo

Proposición 3.3. : Por tres puntos no colineales pasa un plano proyectivo y solouno.

Proposición 3.4. : Si dos puntos distintos pertenecen a un plano proyectivo, larecta proyectiva que contiene a estos dos puntos está incluida en el plano.

Definición 3.4. : Cuando varios puntos pertenecen a un mismo plano se diceque son coplanares.

3.1.4. Proyectividad

Consideremos dos espacios vectoriales E y F sobre el mismo campo F (con-mutativo), L(E,F ) el conjunto de transformaciones lineales de E en F , y

ϕ : E − {~0} → P (E) y ψ : F − {~0} → P (F )

32

Page 33: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

las transformaciones canónicas.Tratamos de construir a partir de una transformación lineal f ∈ L(E,F ), una

transformación g del espacio proyectivo P (E) en el espacio proyectivo P (F ).

Definición 3.5. : Dada una transformación lineal f ∈ L(E,F ) se le puede aso-ciar una transformación g llamada proyectividad asociada a f , de la siguienteforma:

g : P (E)− P (Ker(f)) → P (F )

X ∈ P (E)− P (Ker(f)) → g(f(X)) = ψ(f(x)) (x ∈ ϕ−1(X))

.

Interpretando la definición anterior, pensando en el plano, observamos que unaproyectividad es una función biyectiva, la cual transforma un plano en otro planoequivalente, en el que se conservan las propiedades invariantes a las proyectivi-dades.

Definición 3.6. : Una homografía entre espacios proyectivos es una proyectividadbiyectiva.

Proposición 3.5. : Sea E un espacio vectorial sobre K, P (E) el espacio proyec-tivo asociado entonces, las homografías de P (E) respecto a la composición detransformaciones forman un grupo.

Definición 3.7. : Dos conjuntos de puntos F y F ′ de dos espacios proyectivos sedice que son proyectivamente equivalentes, si existe una proyectividad biyectiva(homografía) del primer espacio en el segundo mediante la cual F ′ es la imagende F .

33

Page 34: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

3.1.5. Ecuaciones de la proyectividad

Sean dos espacios proyectivos P (E) y P (E ′), de dimensiones n ym, asociados alos espacios vectoriales E y E ′, y una proyectividad asociada a una transformaciónlineal f : E → E ′, f : P (E)−P (Ker(f)) → P (E ′). Consideremos dos referenciasproyectivas {U0, U1, . . . , Un;U} y {V0, V1, . . . , Vm;V } en P (E) y P (E ′), respecti-vamente. Si tomamos bases, asociadas a dichas referencias {u0, u1, . . . , un} en Ey {v0, v1, . . . , vn} en E ′ la transformación f se expresa, respecto a las bases, poruna ecuación matricial de la forma:

y0

y1

...ym

=

a0

0 a01 . . . a0

n

a10 a1

1 . . . a1n

. . . . . . . . . . . .

am0 am

1 . . . amn

x0

x1

...xm

o bien Y = AX.

A la expresión en coordenadas homogéneas mxx′+nx+px′+q = 0 con np−mq 6=0. Se le denomina Ecuación de la Proyectividad.

3.1.6. Dualidad

Primero recordemos el termino dualidad en el algebra lineal de espacios vecto-riales, para posteriormente llevarlo a espacios proyectivos.

Sea E un espacio vectorial de dimensión n sobre un campo conmutativo K,recordemos que el espacio vectorial dual E∗ de E, es el espacio vectorial de lastransformaciones lineales de E en K, con las operaciones de suma y producto porun escalar. Sea ε = {e1, e2, . . . , en} una base de E y consideremos las transfor-maciones lineales εi ∈ E∗, definidas por εji (~ej) = δj

i (i, j) = (1, 2, . . . , n), dondeδji son las deltas de Kronecker: δj

i = 0 si i 6= j y δji = 1 si i = j. El conjunto

ε∗ = {e1, e2, . . . , en} constituye una base de E∗, denominada base dual de la base

34

Page 35: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

{e1, . . . , en} de E, por lo que dim E∗ = dim E = n.Dualidad en espacios proyectivosSea E un espacio vectorial sobre un campo conmutativo K, E∗ el espacio

vectorial dual y P (E) y P (E∗) los espacios proyectivos asociados a E y E∗ re-spectivamente.

Definición 3.8. : Recibe el nombre de espacio proyectivo dual del espacio proyec-tivo P (E), el espacio proyectivo P (E∗) deducido del dual E∗ de E.

De acuerdo a la definición anterior, podemos enunciar el principio de dualidad.

Definición 3.9. Principio de dualidad:A todo teorema en P (E) que relacione puntos e hiperplanos y que este basado

tan solo en propiedades de intersección o suma de subespacios proyectivos deP (E), le corresponde un teorema en el espacio proyectivo P (E∗), llamado teoremadual del anterior, cuyo enunciado se obtendrá permutando las palabras ’punto’por ’hiperplano’ (recta en el caso R2) y viceversa, consecuentemente ’colineal’por ’concurrente’, ’vértice’ por ’lado’. Así por ejemplo el dual del punto AB ·CDes la línea (a · b)(c · d).

3.1.7. Plano proyectivo

El motivo de esta sección es mostrar algunos de los teoremas más importantesen el plano proyectivo.

Proposición 3.6. : Dos puntos cualesquiera de una recta determinan la mismarecta.

Proposición 3.7. : No todos los puntos del plano proyectivo pertenecen a unamisma recta.

Proposición 3.8. : Toda recta tiene por lo menos tres puntos.

35

Page 36: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Proposición 3.9 (Desargues). (Teorema de Desargues): Si dos triángulos estánrelacionados de manera que las rectas que unen vértices homólogos pasan por unmismo punto, entonces los lados homólogos se cortan en puntos de una mismarecta, denominada eje de homología.

Demostración: Sean ABC y A′B′C ′ los triángulos en cuestión. Supongamosque las rectas AA′, BB′ y CC ′ pasan por O, lo que se quiere demostrar es quelos puntos P = AB ∩ A′B′, Q = AC ∩ A′C ′ y R = BC ∩ B′C ′ están sobre lamisma línea.

Figura 9: Teorema de Desargues

Tomemos el punto O como origen y A como el punto impropio entonces A′ =

O + αA (α ∈ K), B′ = O + βB (β ∈ K), C ′ = O + γC (γ ∈ K).Luego el punto P = A′−B′ = αA− γB pertenece a la recta A′B′ y a la recta

AB, por lo tanto es el punto de intersección de ambas rectas. Análogamente, lospuntos

Q = B′ − C ′ = βB − γC

R = C ′ − A′ = γC − αA

son los puntos de intersección de los otros pares de lados homólogos, deduciendode todas estas relaciones que P+Q+R = 0, lo que quiere decir que los tres puntosP , Q, R son dependientes, es decir que están alineados.

36

Page 37: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

El teorema dual al teorema de desargues es el siguiente:

Definición 3.10. Si dos triángulos de un plano están relacionados de maneraque los lados homólogos se corten en puntos de una misma recta, las rectas queunen vértices homólogos pasan por un mismo punto, denominado centro de ho-

mología.

Figura 10: Teorema Dual al de Desargues

Definición 3.11 (Pappus). Dados tres puntos A, B, C sobre una recta y otrostres puntos A′, B′, C ′ sobre otra recta, entonces los puntos AB′∩BA′, AC ′∩CA′

y BC ′ ∩ CB′ son colineales.

Figura 11: Teorema de Pappus

Razon Doble

37

Page 38: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

La razón doble de cuatro puntos es un escalar asociado a esos puntos queno depende de la constante de proporcionalidad arbitraria a sus coordenadashomogéneas y es invariante sobre el cambio de coordenadas sobre la recta.

Definición 3.12. : Se llama razón doble de cuatro puntos P1, P2, P3, P4 alin-eados a la expresión:

(P1, P2, P3, P4) =x0

3x11 − x1

3x01

x03x

12 − x1

3x02

:x0

4x11 − x1

4x01

x04x

12 − x1

4x02

=

∣∣∣∣∣ x03 x0

1

x13 x1

1

∣∣∣∣∣∣∣∣∣∣ x03 x0

2

x13 x1

2

∣∣∣∣∣:

∣∣∣∣∣ x04 x0

1

x14 x1

1

∣∣∣∣∣∣∣∣∣∣ x04 x0

2

x14 x1

2

∣∣∣∣∣.

Donde (x0i , x

1i ) con (i=1, 2, 3, 4), las coordenadas homogéneas de Pi respecto

a una referencia proyectiva dada.Usando coordenadas no homogéneas, la razón doble de cuatro puntos alineados

se reprenda así:(P1, P2, P3, P4) =

x3 − x1

x3 − x2:x4 − x1

x4 − x2.

Definición 3.13. : Dos rectas L y L′ contenidas en un plano proyectivo se dicenque son perspectivas, cuando existe una transformación biyectiva σ : L → L′ talque las rectas que unen cada punto con su imagen concurren en un mismo puntollamado centro de perspectividad. A la transformación σ : L→ L′ se le llamaperspectividad.

Definición 3.14. : Dos haces de rectas son perspectivas cuando existe una biyec-ción entre ambas de tal forma que los puntos de intersección de cada recta consu imagen están sobre una recta, llamada eje de perspectividad.

Definición 3.15. La razón doble se conserva por perspectividad

38

Page 39: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Figura 12: La razón doble se conserva

Proposición 3.10. : La condición necesaria y suficiente para que una proyectivi-dad entre rectas del plano sea una perspectividad es que el punto de intersecciónde ambas rectas se corresponda en la proyectividad.

Proposición 3.11. : La condición necesaria y suficiente para que una proyectivi-dad entre rectas del plano sea una perspectividad es que el punto de intersecciónde ambas rectas se corresponda en la proyectividad.

Figura 13: Condición necesaria y suficiente

3.2. Transformaciones Proyectivas

3.2.1. Afinidades

Definición 3.16. : Sean π y π′ dos planos proyectivos en los cuales se distinguenlas rectas impropias. Se llama afinidad a toda homografía σ : π → π′ que trans-

39

Page 40: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

forma la recta impropia en la recta impropia.

Proposición 3.12. : Una afinidad entre planos es una homografía que transformarectas paralelas en rectas paralelas.

La representación matricial de una afinidad está dada por:x′

y′

1

=

a11 a12 tx

a21 a22 ty

0 0 1

x

y

1

.

Una transformación afín en el plano tiene 6 grados de libertad correspondiendoa los 6 elementos de la matriz, con ello se pueden producir deformaciones siguiendouna dirección arbitraria. Dado que una transformación afín permite deformacionesno isotrópicas, los invariantes serán: El paralelismo, los cocientes de longitudes desegmentos de líneas paralelas, cocientes de áreas, contactos, tangencias.

Proposición 3.13. : Una afinidad entre planos queda determinada por tres paresde puntos homólogos propios, no alineados en ninguno de los dos planos.

3.2.2. Semejanzas

Consideremos el plano proyectivo deducido del plano afín euclidiano ampliado.

Definición 3.17. : Se llama semejanza entre dos planos proyectivos a toda afinidadque conserva los ángulos.

De aquí observamos que dos triángulos homólogos tendrán sus ángulos igualesy, por tanto, serán semejantes en el sentido de la geometría elemental.

Proposición 3.14. : Si una homografía transforma rectas perpendiculares enrectas perpendiculares entonces es una semejanza.

40

Page 41: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Una semejanza es una isometría compuesta con un escalado isotrópico. En elcaso de una representación euclidiana compuesta con una escala, la semejanzatiene la siguiente representación:

x′

y′

1

=

s cos θ −s sin θ tx

s sin θ s cos θ ty

0 0 1

x

y

1

.

3.2.3. Isometrías

Las isometrías son transformaciones que en el plano R2 conservan distanciaeuclídiana.

Cuando una semejanza es entre los puntos de un mismo plano y se emplea elmismo sistema de coordenadas, si k es la razón de semejanza y k= 1 la transfor-mación

x′ = k(x cos θ − y sin θ) + a01

y′ = k(x sin θ + y cos θ) + a02

da lugar a una isometría, ya que los ángulos y los segmentos son iguales.Una isometría se representa por:

x′

y′

1

=

ε cos θ −ε sin θ tx

ε sin θ ε cos θ ty

0 0 1

x

y

1

.

Donde ε = ±1. Si ε = 1 entonces la isometría preservará la orientación y esuna transformación Euclídiana. Si ε = −1 la isometría invertirá la orientación(una reflexión).

Una transformación isométrica tiene 3 grados de libertad, uno para la rotación

41

Page 42: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

y dos para la traslación.Los invariantes para este grupo de transformaciones son: Los ángulos, longi-

tudes y áreas.

3.2.4. Proyectividades

Las transformaciones proyectivas ya han sido definidas como transformacioneslineales no singulares de coordenadas homogéneas.

Evidentemente generalizan las transformaciones afines, que son la composiciónde una transformación lineal general no singular de coordenadas homogéneas yde una traslación. Y la hemos definido anteriormente de la forma siguiente:

y0

y1

...ym

=

a0

0 a01 . . . a0

n

a10 a1

1 . . . a1n

. . . . . . . . . . . .

am0 am

1 . . . amn

x0

x1

...xm

.

Una proyectividad entre planos puede ser calculada a partir de la correspon-dencia de cuatro puntos, pues, aunque la matriz permite nueve grados de libertadsolo ocho son independientes.

El invariante más importante es la razón doble de cuatro puntos alineados queya ha sido definido con anterioridad.

42

Page 43: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

4. Algebra Geométrica en la visión por computadora

4.1. Introducción

En esta sección estudiaremos el Algebra Geométrica, la cual esta basada en elAlgebra Lineal y en la Geometría Proyectiva.

El álgebra geométrica es en realidad un conjunto de álgebras que se generan apartir de un espacio lineal. Partiendo de este marco podemos citar el álgebra deClifford que fue creada por William K. Clifford (1878-1882), quien introdujo unanueva regla de multiplicación de vectores. Lipschitz (1880-1886) también descubrióindependientemente esta regla y dio la primera aplicación a la Geometría, nom-brándola representación de Rotaciones en Rn. En el caso de R3 esta construcciónincorpora a los Quaternios de Hamilton.

Más recientemente se le da un mayor impulso surgiendo de la necesidad detener un marco matemático para el entendimiento y procesamiento de imágenescon cámaras digitales de objetos de nuestra realidad, el cual es impulsado porinvestigadores en los años 70’s, para ser utilizada con la geometría proyectiva.

Esta Algebra se compone de elementos llamados multivectores, mas específica-mente ’escalar’, ’vector’, ’bivector’, ’trivector’,. . . dado el grado de cada elemento yde algunas operaciones muy importantes llamadas producto geométrico, pro-

ducto exterior, meet y join, así como la abstracción que relaciona espaciosGn+1-Dimensionales con espacios Gn-Dimensionales por medio del split proyec-

tivo.Usando coordenadas homogéneas introduciremos el espacio euclidiano de 3−D

en el espacio proyectivo P 3 o R4 y el espacio euclidiano 2 −D que es la imagendel plano en el espacio proyectivo P 2 o R3.

El álgebra geométrica por tanto aprovecha los invariantes geométricos (propiedadesdescriptivas) de los objetos para realizar la construcción de las operaciones.

43

Page 44: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Con ello el álgebra geométrica ofrece una forma más robusta y elegante decalcular intersecciones entre planos, intersecciones de rectas con planos, etc.

4.2. Algebra de Clifford

4.2.1. El producto de vectores de Clifford

Tomemos la base canónica de R2 esto es 〈e1, e2〉 los vectores e1, e2 como yasabemos son ortogonales y unitarios.

Sea r un vector en R2 el cual podemos representar en términos de la basecanónica de R2 de la siguiente forma:

r = (xe1 + ye2) la longitud de r es |r| = v(x2 + y2)

Si el vector r es multiplicado por si mismo r × r = r2 entonces r2 = |r|2, en-tonces observamos que(xe1 + ye2)

2 = x2 + y2 usando distributividad sin asumirconmutatividad, tenemos:

x2e21 + y2e2

2 + xy(e1e2 + e2e1) = x2 + y2

. Esto solo se satisface si e1, e2 obedecen a la regla de multiplicación siguiente:

e12 = e22 = 1

|e1| = |e2| = 1

lo cual corresponde a:e1e2 = −e2e1

e1⊥e2

Notación: Perpendicular = ⊥

44

Page 45: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Usando asociatividad para calcular (e1e2)2 = −e2

1e22 = −1. Dado que el cuadra-

do del producto e1e2 es negativo entonces e1e2 no es escalar ni vector. El productoes una nueva clase, llamada bivector, que representa el área orientada del planocon lados e1 y e2. Denotada en forma compacta por e12 = e1e2.

Ahora calculemose1e12 = e1e1e2 = e2

e12e1 = e1e2e1 = −e21e2 = −e2

e2e12 = e2e1e2 = −e1e22 = −e1

y

e12e2 = e1e22 = e1

Los cuatro elementos son:

1 escalare1, e2 vectorese12 bivector

y estos forman una base del álgebra de Clifford Cl2 en el plano R2. Sea u =

u0+u1e1+u2e2+u12e12 es un elemento arbitrario en Cl2 la cual es una combinaciónlineal de un escalar u0, un vector u1e1 + u2e2 y un bivector u12e12 El álgebra deClifford Cl2 es de dimensión 4 en el espacio real con elementos base 1, e1, e2, e12 ycon tabla de multiplicación: En particular el producto de Clifford de dos vectoresa = a1e1 + a2e2 y b = b1e1 + b2e2 es:

ab = a1b1 + a2b2 + (a1b2 − a2b1)e12

.

45

Page 46: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

* e1 e2 e12e1 1 e12 e2e2 −e12 1 −e1e12 −e2 e1 −1

Tabla 1: Tabla de multiplicación

4.2.2. El producto exterior

Del producto anterior observamos que ab tiene una parte escalar y un bivector,separando estas dos partes tenemos:

a • b = a1b1 + a2b2 es el producto punto o producto escalar

a ∧ b = (a1b2 − a2b1)e12 es el producto exterior y es un bivector

El bivector a ∧ b representa la orientación del segmento del plano del paralelo-gramo con lados a y b. El área de este paralelogramo es |a1b2 − a2b1| la cual es lamagnitud del bivector

Los bivectores a∧ b y b∧ a tienen la misma magnitud pero sentido opuesto derotación y lo expresamos de la siguiente manera:

a ∧ b = −b ∧ a

Veamos que:

(a1e1 + a2e2)(b1e1 + b2e2) = a1b1 + a2b2 + (a1b2 − a2b1)e12

a • b = a1b1 + a2b2

a ∧ b = (a1b2 − a2b1)e12

46

Page 47: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Entonces:ab = a • b+ a ∧ b

La regla conmutativa para el producto punto a • b = b • a, junto con la regla noconmutativa de a ∧ b = −b ∧ a implica el siguiente resultado:

ba = a • b− a ∧ b

de aquí encontramos el siguiente resultado:

a • b =(ab+ ba)

2y a ∧ b =

(ab− ba)

2

Lo que tiene las siguientes implicaciones:Dos vectores son paralelos a‖b cuando ellos conmutan esto es ab = ba o también

a ∧ b = 0 o a1b2 = a2b1, y ortogonales a⊥b cuando ellos no conmutan ab = −bao también a • b = 0. En resumen:

ab = ba⇔ a‖b⇔ a ∧ b = 0 ⇔ ab = a • b

ab = −ba⇔ a⊥b⇔ a • b = 0 ⇔ ab = a ∧ b

4.2.3. Proyecciones perpendiculares y reflexiones

Sean a, b dos vectores de Cl2, para calcular la componente de a en la direc-ción de b cuando los dos vectores divergen por un ángulo Φ, 0 < Φ < 180o. La

componente paralela es un múltiplo escalar del vector unitariob

|b|.

a‖ = |a| cos Φ(b

|b|) = |a| |b| cos Φ(

b

|b|)

47

Page 48: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

En otras palabras, la componente paralela de a es el producto escalar a • b =

|a| |b| cos Φ multiplicado por el vector b−1 =b

|b|2, llamada la inversa del vector b.

Así pues tenemos:

a‖ = (a • b) b

|b|2= (a • b)b−1

La componente perpendicular esta dada por la diferencia:

a⊥ = a− a‖ = a− (a • b)b−1 = (ab− a • b)b−1 = (a ∧ b)b−1

El área del paralelogramo con lados a, b es:

|a||b| = |a ∧ b| = |a‖b|sen(Φ)donde0 < Φ < 180o

4.2.4. Reflexión

La reflexión de r por la línea a se obtiene enviando r = r‖ + r⊥ a r′ = r‖ − r⊥

donde r‖ = (r • a)a−1. La imagen reflejada r′ de r con respecto a a es:

r′ = (r • a)a−1 − (r ∧ a)a−1

= (r • a− r ∧ a)a−1

= (a • r + a ∧ r)a−1

= ara−1

y ademásr′ = (2a • r − ra)a−1

= 2(a • ra2 )a− r

48

Page 49: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

La composición de dos reflexiones, primero por a y después por b, esta dada por:

r → r′ = ara−1 → r′′ = br′b−1 = b(ara−1)b−1 = (ba)r(ba)−1

La composición de dos reflexiones es una rotación de dos veces el ángulo entre ay b.

4.2.5. Representación matricial de Cl2

El álgebra de Clifford es un álgebra de 4 − dimensiones sobre los reales R yes isomorfica, las matrices de 2× 2 en los reales R(2), se corresponde con Cl2 dela siguiente forma:

1 ≈

(1 00 1

)e1 ≈

(1 00 -1

)e2 ≈

(0 11 0

)e12 ≈

(0 1-1 0

)Para un elemento arbitrario la correspondencia es la siguiente:

u0 + u1e1 + u2e2 + u12e12 ≈

(u0 + u1 u2 + u12

u2 − u12 u0 − u1

)y

(a+ d) + (a− d)e1 + (b+ c)e2 + (b− c)e12

2≈

(a bc d

)La transpuesta de la matriz será:

(a bc d

)T

=

(a cb d

)

49

Page 50: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Si u = u0 + u1e1 + u2e2 + u12e12 la matriz

adj

(a bc d

)=

(d -b-c a

)

corresponde al conjugado u = u0 − u1e1 − u2e2 − u12e12.

4.2.6. Producto Geométrico

El álgebra geométrica, se compone de elementos llamados multivectores. Losnombres ’escalar’, ’vector’, ’bivector’, ’trivector’,. . . , son dados por el grado másalto de cada elemento o multivector.

En las secciones anteriores estudiamos el producto de Clifford de vectores (R2),ahora generalizaremos a multivectores arbitrarios y al producto lo llamaremosproducto geométrico.

Entonces el producto geométrico de un multivector Ar (de grado r), con unmultivector Bs (de grado s), es el siguiente:

ArBs = 〈AB〉r+s + 〈AB〉r+s−2 + · · ·+ 〈AB〉|r−s|

Donde 〈M〉r denota la proyección sobre la componente de M de grado r. Laproyección sobre la componente M de grado−0 se escribe 〈M〉. Los símbolos ′•′,′∧′, son usados para los términos de más bajo y más alto grado respectivamente,los cuales son:

A •B ≡ 〈AB〉|r−s| .

A ∧B ≡ 〈AB〉|r+s| .

los cuales como ya lo sabemos son el producto punto y el producto exterior.

50

Page 51: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

4.3. El álgebra geométrica en el espacio de 3−D y 4−D

4.3.1. El espacio 3−D y el álgebra geométrica

El espacio 3−D es generado por tres vectores base σ1, σ2, σ3 con σ2i = +1 con

i = 1, 2, 3 y el álgebra geométrica 3−D generada por estos vectores base constade 23 = 8 elementos dados por:

1, σ1, σ2, σ3, σ1σ2, σ2σ3, σ3σ1, σ1σ2σ3 ≡ I

Donde los bivectores son interpretados como áreas orientadas, los trivectores comovolúmenes orientados. El elemento de más alto grado es el trivector, en este casoσ1σ2σ3 al cual es llamado pseudoescalar, donde su cuadrado es igual a -1 y conmutacon todos los multivectores en el espacio de 3 − D. La unidad pseudoescalar Itomo relevancia cuando hablemos de dualidad.

Los tres vectores base σi multiplicados por I, dan los siguientes bivectores base:

Iσ = σ2σ3 Iσ = σ3σ1 Iσ = σ1σ2

Si recordamos y relacionamos i, j, k de los cuaterniones de Hamilton que estudi-amos con anterioridad con σ2σ3, −σ3σ1 y σ1σ2, recordamos las famosas relacionesde Hamilton

i2 = j2 = k2 = ijk = −1

.

51

Page 52: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

4.3.2. El álgebra geométrica de 4-D para el espacio proyectivo

Comencemos por describir los elementos del álgebra de Lorentzian.Esta álgebra tiene como vectores base γ1, γ2, γ3, γ4, donde γ2

4 = +1, γ2k = −1

para k = 0, 1, 2, 3. Los cuales generan los siguientes multivectores base:

1, γ1, γ2, γ3, γ4, γ2γ3, γ3γ1, γ1γ2, γ4γ1, γ4γ2, γ4γ3, Iγ1, Iγ2, Iγ3, Iγ4, γ1γ2γ3γ4 = I.

DondeI = γ1γ2γ3γ4

es el pseudoescalar con:

I2 = (γ1γ2γ3γ4)(γ1γ2γ3γ4) = −(γ3γ4)(γ3γ4) = −1.

Un poco más adelante veremos, para que nos servirán las dos algebras anterior-mente estudiadas (3−Dy4−D).

52

Page 53: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

5. Desarrollo de Software

5.1. Primer paso: Experimento

Para poder desarrollar el software de reconstrucción, primero se tuvo que dis-eñar un experimento, en el cual se tuvieran las condiciones necesarias par poderrealizar, en cualquier momento, replicas del mismo evento y así poder fijar lasvariables, como la distancia del objeto al eje de coordenadas globales, el tamañodel lente de la cámara, el numero de píxeles de la cámara, etc.

5.1.1. Material y Equipo

Dos cámaras fotográficas digitales

Un dado

Una regla graduada

Papel milimétrico

5.1.2. Desarrollo experimental

Se procedió a colocar las cámaras a 25 cm. del eje global de referencia (a laizquierda y dererecha) y con rotación de 12o (−12o) sobre el eje x del sistemaglobal de coordenadas y el dado en una de sus esquinas sobre el eje z.Se coloca el dado de tal forma que una de sus esquinas se encuentre a 150 cm. deleje z del sistema de coordenadas globales.

En la figura 17, se observa el sistema de coordenadas globales, los ejes focalesde ambas cámaras y los planos que representan los lentes de las cámaras.

53

Page 54: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Figura 14: Sistema de coordenadas globales

Una vez en posición se toman varias fotos del dado y obtenemos como mues-tra la figura 18.

Figura 15: Fotos del dado

Estas dos imágenes nos servirán para la reconstrucción del dado.

54

Page 55: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

5.2. Desarrollo del software

5.2.1. Construcción de las funciones

Para comenzar el desarrollo del software necesitamos conocer algunos datos,estos los obtenemos del experimento que realizamos con anterioridad y son lossiguientes: Datos tomados del experimento.

Distancia del objeto al centro de coordenadas global: 25 cm.

Angulo de rotación: tan (5/25).

Datos de las cámaras proporcionados por el fabricante

Píxeles a lo largo: 352.

Píxeles a lo ancho: 288.

Largo del lente de la cámara: 17mm.

Ancho del lente de la cámara: 14mm.

Distancia focal: 25mm.

Con los datos obtenidos anteriormente, estamos en posibilidad de desarrollarel software para la reconstrucción de puntos de un objeto.

Antes de pasar a explicar las funciones, las enumeraremos, para así tenerlasencuenta mas adelante.

algebra_geometrica.m

bracket3.m

bracket4.m

camara.m

55

Page 56: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

cartesianas.m

ejes.m

formafigura.m

globales.m

join.m

Linea.m

meetlp.m

meetpp.m

plano.m

plucker

principal.m

puntos_imagen.m

Qprod.m

sistema.m

La secuencia es la siguiente:La función principal lleva por nombre "principal.m".Primero se establecen las constantes, después se encuentra la matriz de trans-

formación que lleva, de píxeles a puntos en un eje de coordenadas en el plano lacual es:

56

Page 57: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

a b c

b d e

b b f

.

Donde:

a = −(pixeles a lo largo)∗(distancia focal)largo del lente de la camara .

b = 0.

c = pixeles a lo largo2 .

d = −(pixeles a lo ancho)∗(distancia focal)ancho del lente de la camara .

e = pixeles a lo ancho2 .

f = 1.

Después se obtienen los puntos de la imagen, estos puntos se encuentran en unplano (el de la foto digital) y están dados en píxeles. Los puntos de cada imagenpueden ser introducidos por coordenadas (x, y) manualmente o automáticamentecon el mouse, esta operación se realiza en la función " puntos_imagen.m ".De aquí se transforman los puntos de la imagen en píxeles a puntos en 3−D en elmarco del sistema de coordenadas locales de cada cámara. Para así transformarlosal eje de coordenadas globales por medio de trasformaciones proyectivas y opera-ciones con cuaternios, siendo estas una traslación y una rotación respectivamente.La trasformación se lleva a cabo en la función " globales.m ". De esta maneratenemos ya los puntos en el sistema de coordenadas globales.

57

Page 58: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Ahora entramos a la parte de álgebra geométrica donde se formarán rectasy planos, los cuales manipularemos con las operaciones meet y join, la funciónencargada de las operaciones álgebraicas es: ”algebra_geometrica.m”.

La función ”algebra_geometrica.m” recibe parejas de puntos (A,B) donde A seencuentra en la perspectiva del eje focal de la cámara izquierda y B se encuentraen la perspectiva del eje focal de la cámara derecha y los puntos que representanlos ejes focales de las cámaras y regresa un punto X, que representa el puntoresultante promedio de otros dos X1, X2, los cuales son calculados cada uno de lasiguiente manera: X1 se obtiene de intersectar una recta L y un plano P mediantela función " meetlp.m ", donde la recta L es obtenida al intersectar dos planospor medio de la función " meetpp.m ", los planos se forman cada uno de trespuntos no colineales (supongamos la perspectiva de la cámara izquierda) uno esel eje focal, el punto A y el tercero es un punto que pertenece al sistema local dela cámara izquierda, así se obtiene el plano P1, el otro plano P2 (cámara derecha)es formado de manera similar, de esta manera al intersectar los planos P1 y P2

se obtiene la recta L. Ahora el plano P se obtiene de manera similar en la que seobtuvo el plano P1, salvo que los puntos se toman de la perspectiva de la cámaraderecha. Teniendo la recta L y el plano P se realiza la intersección de ellos obte-niendo X1. De forma similar se obtiene el punto X2 y se calcula el promedio.

El código de la función ”algebra_geometrica.m” para un par de puntos es elsiguiente:

58

Page 59: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

function puntos3D = algebrageometrica(pIzq, pDer, O1, O2)

l1=plucker(...

meetpp(Plano(O1, pizq(i,:),pizq(k+1,:)), ...

{6mm}Plano(O2, pder(i,:),pder(k+1,:))));

a1 =meetlp(l1,Plano(O1,pizq(m-1,:),pizq(i,:)));

l2=plucker(meetpp(Plano(O1, pizq(m-1,:),pizq(i,:)), ...

Plano(O2, pder(m-1,:),pder(i,:))));

a2 =meetlp(l2,Plano(O1,pizq(i,:),pizq(k+1,:)));

a1 =cartesianas(a1);

a2 =cartesianas(a2);

a=(a1+a2)/2;

La función ”plucker.m” recibe una recta L en coordenadas pluckerianas y obtienedos puntos de ella, auxiliándose del producto cruz y del producto punto y regre-sando los puntos en coordenadas homogéneas para la representación de la recta.La descripción del código se da a continuación.

function linea2 = plucker(linea1)

%Componente de dirección de la línea

u1 = linea1(1:3);

%Momento de la línea

u2 = linea1(4:6);

%Encontramos un punto en la línea

Pperp = cross(u2(1:3), u1(1:3));

Pperp = Pperp/dot(u1(1:3), u1(1:3));

%Encontramos otro punto en la linea

59

Page 60: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

p2 = Pperp+u1;

%Reservamos espacio para el resultado

%disp(’descomposición’);

linea2 = Linea([Pperp 1], [p2 1]);

end

La función ”meetpp.m” recibe dos planos y regresa una recta, la cual es el re-sultado de la intersección de los planos. La intersección se lleva a cabo en la formaque se describió en la parte de Algebra Geométrica sección Intersección de dosplanos. En la que interviene el bracket y el producto exterior.Donde [X1X2X3Yi]

representa el bracket y (Yj ∧ Yk) el join. El código es el siguiente:

function linea = meetpp(p1,p2)

%Se produce la recta de intersección o Bivector en R4

linea = ...

bracket4(p1{1},p1{2},p1{3},p2{1})*join(p2{2},p2{3})+ ...

bracket4(p1{1},p1{2},p1{3},p2{2})*join(p2{3},p2{1})+ ...

bracket4(p1{1},p1{2},p1{3},p2{3})*join(p2{1},p2{2});

end

La función ”meetlp.m” calcula el punto de intersección de una recta con un planode acuerdo a la descripción dada en 4.5. Donde interviene el bracket. El código esel siguiente:

60

Page 61: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

function punto = meetlp(l,p)

%Se obtiene el resultado

punto = ...

bracket4(l{1}, l{2}, p{2}, p{3})*p{1} + ...

bracket4(l{1}, l{2}, p{3}, p{1})*p{2} + ...

bracket4(l{1}, l{2}, p{1}, p{2})*p{3};

end

Las funciones ”bracket4.m” y ”bracket3.m” calculan la magnitud de un pseu-doescalar y el código de dichas funciones se muestra a continuación:

function a = bracket4(X1,X2,X3,X4)

X1 = X1/X1(4);

X2 = X2/X2(4);

X3 = X3/X3(4);

X4 = X4/X4(4);

X1 = X1(1:3);

X2 = X2(1:3);

X3 = X3(1:3);

X4 = X4(1:3);

a = bracket3( X2-X1,...

X3-X1,...

X4-X1);

end

61

Page 62: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

function a = bracket3(x1, x2, x3)

m = zeros(3);

m(1, :) = x1;

m(2, :) = x2;

m(3, :) = x3;

a = det(m);

end

La función ”join.m”, nos da la recta entre dos puntos en R4, esto es en coor-denadas de plucker. El código es el siguiente:

function l = join(X,Y)

%Los puntos x y y se pasan a coordenadas

X =X/X(4);

Y =Y/Y(4);

%Se reserva espacio para el resultado

l = zeros(1, 6);

%Se encuentra la dirección de la línea

l(1:3) = X(1:3)-Y(1:3);

%Se encuentra el momento de la línea

l(4:6) = cross(X(1:3),Y(1:3));

end

Hasta aquí hemos descrito las operaciones del algebra geométrica y mostradoel código para tales operaciones, ahora lo que resta es mostrar las funciones querealizan la parte grafica de esta aplicación.

62

Page 63: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Para ello se crea la función ”sistema.m” la cual dibuja el sistema de coorde-nadas globales, los ejes focales de las cámaras izquierda y derecha y los planosque representan la lente de las cámaras. Esta función se auxilia de las funciones”ejes.m” y ”camara.m” y dibuja las líneas que unen los puntos calculados por”algebra_geometrica.m”.

El código fuente de todas las funciones se encuentra en el apéndice A y en elCD, que va anexo a este reporte de Proyecto Terminal.

Antes de terminar esta sección mostramos algunos resultados obtenidos.

5.2.2. Resultados

Corrida No. 1.En la figura 16 se observa la reconstrucción de una cara del dado.

Figura 16: Una cara del dado

A continuación se muestran los puntos seleccionados por el usuario y los puntosobtenidos para la reconstrucción del objeto de la figura anterior.

63

Page 64: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Puntos en 3-D en el sistema de las cámaraspi =-0.1827 0.8376 25.0000-0.1827 -3.4401 25.00003.8770 -3.3124 25.00003.9404 0.7738 25.0000pd =1.3397 0.8376 25.00001.3397 -3.3763 25.00002.9255 -1.9717 25.00002.9255 1.6038 25.0000puntos globales en el sistema42.2153 0.8376 23.757842.2153 -3.4401 23.757846.0823 -3.3124 24.993646.1427 0.7738 25.0130-41.1133 0.8376 23.4056-41.1133 -3.3763 23.4056-39.6027 -1.9717 22.9228-39.6027 1.6038 22.9228puntos encontrados por métodos de Algebra Geométrica3.6390 4.9884 141.48653.6538 -20.4808 141.441422.9425 -22.8773 172.617622.5822 5.5001 177.7936

64

Page 65: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Corrida No. 2.Datos de la segunda corrida en la reconstrucción de dos caras del dado.principal Desea ingresar los puntos manualmente s/n:n

Píxeles seleccionados de la imagen izquierda pIzq =174.5299 130.7090177.1567 210.828495.7239 208.201597.0373 129.3955Desea ingresar los puntos manualmente s/n:Píxeles seleccionados de la imagen derecha pDer =149.5746 130.7090146.9478 210.8284118.0522 191.1269118.0522 129.3955Puntos en coordenadas en los planos de las cámaras pi =0.0710 0.6461 25.0000-0.0559 -3.2486 25.00003.8770 -3.1209 25.00003.8135 0.7099 25.0000pd =1.2762 0.6461 25.00001.4031 -3.2486 25.00002.7986 -2.2909 25.00002.7986 0.7099 25.0000puntos globales en el sistemapIzq:42.4570 0.6461 23.8350

65

Page 66: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

42.3361 -3.2486 23.796446.0823 -3.1209 24.993646.0219 0.7099 24.9743pDer:-41.1737 0.6461 23.4249-41.0528 -3.2486 23.3863-39.7236 -2.2909 22.9614-39.7236 0.7099 22.9614puntos encontrados por métodos de Algebra Geométrica4.0151 3.9388 145.30644.4199 -19.3207 141.526423.1009 -21.4282 171.607022.4994 4.9078 172.6460puntos reales encontrados para graficar 4.0151 3.9388 145.30644.4199 -19.3207 141.526423.1009 -21.4282 171.607022.4994 4.9078 172.64604.0151 3.9388 145.3064

principal Desea ingresar los puntos manualmente s/n:nPíxeles seleccionados de la imagen izquierda pIzq =177.1567 134.6493177.1567 209.5149203.4254 196.3806203.4254 118.8881Desea ingresar los puntos manualmente s/n:Píxeles seleccionados de la imagen derecha pDer =149.5746 134.6493

66

Page 67: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

146.9478 209.5149225.7537 196.3806225.7537 118.8881Puntos en coordenadas en los planos de las cámaras pi =-0.0559 0.4546 25.0000-0.0559 -3.1848 25.0000-1.3245 -2.5463 25.0000-1.3245 1.2207 25.0000pd =1.2762 0.4546 25.00001.4031 -3.1848 25.0000-2.4029 -2.5463 25.0000-2.4029 1.2207 25.0000puntos globales en el sistema42.3361 0.4546 23.796442.3361 -3.1848 23.796441.1277 -2.5463 23.410241.1277 1.2207 23.4102-41.1737 0.4546 23.4249-41.0528 -3.1848 23.3863-44.6782 -2.5463 24.5449-44.6782 1.2207 24.5449puntos encontrados por métodos de Algebra Geométrica3.9688 2.7301 142.92733.8960 -19.1587 143.1534-12.2946 -17.8780 164.3683-14.3029 8.8473 169.6675

67

Page 68: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

puntos reales encontrados para graficar3.9688 2.7301 142.92733.8960 -19.1587 143.1534-12.2946 -17.8780 164.3683-14.3029 8.8473 169.66753.9688 2.7301 142.9273En la siguiente figura, se observa la primera cara del dado que se reconstruye.

Se observa una buena aproximación de la cara del dado.

En figura 17, se observan las caras vistas desde arriba, casi se observan doslíneas, tal como se esperaba. Además se aprecia, como lo acentamos desde unprincipio, que la distancia mas cercana del dado (una de sus esquinas) al centrode coordenadas globales, debería ser aproximadamente de 150 cm. en esta tomase esta muy cerca del valor real.

En la figura 18, se observa la reconstrucción de dos caras del dado.

68

Page 69: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Figura 17: Vista desde arriba

Figura 18: reconstruccion de dos caras

69

Page 70: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Apéndice

A. Breve introduccion a Matlab

A.1. Una Breve introduccion

Matlab es un Sotfware para desarrollo principalmente de aplicaciones matem-aticas, su significado es MATrix LABoratory(LABORATORIO DE MATRICES).MATLAB tiene un gran desempeño para el cálculo numérico computacional yde visualización, integra análisis numérico, matrices, procesamiento de señales ygráficas, lo cual le da una extraordinaria versatilidad y capacidad para resolverproblemas en matemática aplicada, física, química, ingeniería, finanzas y muchasotras aplicaciones, esto permite resolver complicados problemas numéricos sinnecesidad de escribir un programa, fue escrito inicialmente como auxiliar en laprogramación de cálculo con matrices y desarrollado originalmente en fortran,actualmente está escrito en lenguaje C.

A.2. Iniciando con Matlab

Despues de haber instalado Matlab en nuestra estacion de trabajo, los siguientees ejecutar el programa entonces aparece el indicador de comandos el cual estálisto para recibir instrucciones en lenguaje MatLab.

70

Page 71: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

La parte más importante de esta ventana inicial es el Command Window,que aparece en la parte derecha. En esta sub-ventana es donde se ejecutan loscomandos de MATLAB, despues del prompt característico ” >> ”, que indicaque el programa está preparado para recibir instrucciones.

En la parte superior izquierda de la pantalla aparecen dos ventanas.

En la parte superior aparece la ventana Current Directory, la cual muestralos archivos y subdirectorios del directorio activo o actual. El directorio activo se

71

Page 72: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

puede cambiar desde la propia ventana, tambien desde la barra de herramientascon los métodos de navegación de directorios de Windows o desde el commandWindow usando comando tipicos de DOS.

Clicando dos veces sobre alguno de los archivos *.m del directorio activo se abreel editor de archivos de MATLAB, que es una herramienta fundamental para laprogramación.El Workspace contiene información sobre todas las variables que se hayan definidoen esta sesión y permite ver y modificar las matrices con las que se esté trabajando.En la parte inferior derecha aparece la ventana Command History que muestra losúltimos comandos ejecutados en la Command Window. Estos comandos se puedenvolver a ejecutar haciendo doble clic sobre ellos. Clicando sobre un comando conel botón derecho del ratón se muestra un menú contextual con las posibilidadesdisponibles en ese momento. Para editar uno de estos comandos hay que copiarloantes a la Command Window.

A.3. Instrucciones Basicas

Matlab fue creado para operar matrices de una forma facil y rapida, por lo quesu potencia a la hora de realizar operaciones radica precisamente en eso.

A.3.1. Creando Matrices

Vamos a ver como podemos crear matrices en Matlab. Esto es realmentecesencillo, desde el promp podemos escribir >>[4 3 1] cada numero esta separadopor un espacio en blanco y con esto estamos creando un vector de 3 elementos

72

Page 73: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

En ”ans” queda guardado el ultimo resultado obtenido por lo que en ”ans”

esta ahora el vector que creamos, vamos a crear ahora una matriz y guardarla enuna variable, simplemente escribimos >>a=[3 2 1; 3 4 5; 1 3 6], vemos ahora quehay ”; ” que separan los valores, esto nos indica que cada que vemos un ”; ” es elfin de un renglon por lo que nuestra matriz es de 3 renglones y 3 columnas.

Nos interesa las operaciones entre esta matrices asi que para operarlas porejemplo en una multiplicacion solo basta con escribir >>ans*a, recordemos que”ans” tenia el resultado del primer vector que habiamos creado y que ”a” conteniael valor de la matriz.

73

Page 74: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Es facil deducir que ahora ”ans” tiene el valor de la multiplicacion y no el delvector que habiamos creado en el primer ejemplo.

Ahora es vemos que las operaciones entre vectores y matrices es realmentesimple en Matlab pues los algoritmos que realizan estas operaciones ya estanimplementados, lo cual no es asi en otras plataformas de programacion.El resto de las operaciones con matrices se hacen de manera similar al ejemploanterior.Las operaciones de inversa y transpuesta se calculan con el simbolo (\) e inv()respectivamente, en nuestro ejemplo anterior ans tenia el valor de la multiplicacionpor lo que si escribimos >>ans’ obtendriamos la transpuesta de ese vector

74

Page 75: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

A.3.2. Operadores aritmeticos

MATLAB puede operar con matrices por medio de operadores y por medio defunciones. Se han visto producto (*) y traspuesta (’).Los operadores matriciales de MATLAB son los siguientes:

+ adición o suma

– sustracción o resta

* multiplicación

’ traspuesta

ˆ potenciación

(\) división-izquierda (para un uso especial)

/ división-derecha (division normal)

.* producto elemento a elemento

./ y .\ división elemento a elemento

.ˆ elevar a una potencia elemento a elemento

Estos operadores se aplican también a las variables o valores escalares, aunquecon algunas diferencias. Todos estos operadores son coherentes con las correspon-dientes operaciones matriciales: no se puede por ejemplo sumar matrices que nosean del mismo tamaño. Si los operadores no se usan de modo correcto se obtieneun mensaje de error.

Los operadores anteriores se pueden aplicar también de modo mixto, es decircon un operando escalar y otro matricial.En el caso la operación con el escalar se aplica a cada uno de los elementos de lamatriz.

75

Page 76: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Podemos ver el siguiente ejemplo:

Figura 19: Ejemplo de operaciones vector por escalar

Ya es obvio ver que Matlab utiliza el operador de división / para dividir porun escalar todos los elementos de una matriz o un vector como pudimos verlo conlas operaciones se suma y multiplicacion. Esto ya no es ninguna sorpresa. Pero eluso del operador \ requiere mas atención.

En este ejemplo veremos el uso del operador \, consideremos el sistema deecuaciones lineales Ax=b,donde x y b son vectores columna, y A una matrizcuadrada invertible.

76

Page 77: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

La resolución de este sistema de ecuaciones se puede escribir en las 2 formassiguientes:

x=inv(A)*b

x=A\b

Así pues, el operador división-izquierda por una matriz equivale a pre-multiplicarpor la inversa de esa matriz. El operador división-izquierda es aplicable aunquela matriz no tenga inversa e incluso no sea cuadrada, en cuyo caso la soluciónque se obtiene (por lo general) es la que proporciona el método de los mínimoscuadrados. Cuando la matriz es triangular o simétrica aprovecha esta circunstan-cia para reducir el número de operaciones aritméticas. En algunos casos se obtieneuna solución con no más de r elementos distintos de cero, siendo r el rango de lamatriz.

Figura 20: solucion de sistema de ecuaciones

77

Page 78: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Figura 21: solucion de sistema de ecuaciones

A.4. Graficos

Los comados graficos son de gran importancia en el uso de Matlab, ya quepodemos usarlos de forma realmente facil y nos evita el crear programas complejospara graficar.

A.4.1. Graficos simples

El comando mas simple es ”plot(x, y)” que utiliza dos vectores, x e y, de lamisma longitud.Este dibujará los puntos (xi, yi) y los unirá mediante rectas continuas.

Ya vimos como crear vectores, entonces podemos crear dos e intentar dibujarlo.

78

Page 79: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Lo que hacemos en el ejemplo siguiente es decir cual es el rango (de que valora que valor) del vector x y del vector y, una vez haciendo esto dibujmos el vectorque representan x e y en el plano cartesiano, podemos ver el siguiente ejemplo.

La salida de "plot"del ejemplo anterior da como resultado la siguiente grafica,en la cual podemos ver que efectivamente los rangos de x e y son los que definimospreviamente.

79

Page 80: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

A.4.2. Funciones gráficas 2D elementales

MATLAB dispone de cinco funciones básicas para crear gráficos 2-D. Estasfunciones se diferencian principalmente por el tipo de escala que utilizan en losejes de abscisas y de ordenadas. Estas cuatro funciones son las siguientes:

plot() crea un gráfico a partir de vectores y/o columnas de matrices, conescalas lineales sobre ambos ejes

plotyy() dibuja dos funciones con dos escalas diferentes para las ordenadas,una a la derecha y otra a la izquierda de la figura.

loglog() ídem con escala logarítmica en ambos ejes

semilogx() ídem con escala lineal en el eje de ordenadas y logarítmica en eleje de abscisas

semilogy() ídem con escala lineal en el eje de abscisas y logarítmica en el ejede ordenadas

Existen además otras funciones orientadas a añadir títulos al gráfico, a cadauno de los ejes, a dibujar una cuadrícula auxiliar, a introducir texto, etc.Estas funciones son las siguientes:

title(’título’) añade un título al dibujo

xlabel(’tal’) añade una etiqueta al eje de abscisas. Con xlabel off desaparecey otra a la izquierda de la figura.

ylabel(’cual’) añade una etiqueta al eje de ordenadas. Con ylabel off desa-parece

80

Page 81: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

text(x, y,′ texto′) introduce ’texto’ en el lugar especificado por las coorde-nadas x e y. Si x e y son vectores, el texto se repite por cada par de elementos.Si texto es también un vector de cadenas de texto de la misma dimensión,cada elemento se escribe en las coordenadas correspondientes

gtext(′texto′) introduce texto con ayuda del ratón: el cursor cambia de formay se espera un clic para introducir el texto en esa posiciónlegend() definerótulos para las distintas líneas o ejes utilizados en la figura

A.4.3. Funciones gráficas tridimensionales

MATLAB tiene posibilidades de realizar varios tipos de gráficos 3D. La primeraforma de gráfico 3D es la función plot3, que es el análogo tridimensional de lafunción plot. Esta función dibuja puntos cuyas coordenadas están contenidas en3 vectores, uniéndolos mediante una línea continua.

La función plot3 es análoga a su homóloga bidimensional plot. Su forma mássencilla es: plot3(x,y,z) que dibuja una línea que une los puntos (x(1), y(1), z(1)),(x(2), y(2), z(2)), etc. y la proyecta sobre un plano para poderla representar enla pantalla. Al igual que en el caso plano, se puede incluir una cadena de 1, 2 ó 3caracteres para determinar el color, los markers, y el tipo de línea:plot3(x,y,z,s)También se pueden utilizar tres matrices X, Y y Z del mismo tamaño:plot3(X,Y,Z) en cuyo caso se dibujan tantas líneas como columnas tienen estas 3matrices, cada una de las cuales está definida por las 3 columnas homólogas dedichas matrices.en el siguiente ejemplo podemos ver como podemos usar las funciones graficaspara tres dimensiones

81

Page 82: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

A.5. Elementos de programación

Una vez que hemos visto los comandos para las operaciones matriciales y paragraficos, lo siguiente es ver como podemos aplicar todo esto en un programa crea-do por nosotros.Esta guia rapida esta orientada a las personas que tengan nocion en programación,pues se pretende dar una referencia rapida y no un tutorial de programación.La programacion en Matlab es realmente sencilla pues incluye todos las intruc-ciones de control y secuencia tipicos de un lenguaje de programacion estructura-do(for , while, if, etc), y la modularización es mucho mas sencilla que en otroslenguajes.Para que empezemos a realizar programas lo primero es abrir el editor que tieneMatlab para esto basta con dar clic.

82

Page 83: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Entonces no aparecera el editor de Matlab.

Ahora podemos empezar a escribir nuestros programas.

A.5.1. Instrucciones Basicas

Mostramos las instrucciones mas basicas que utilizaremos para programar enMatlab

disp Sirve para mostrar resultados o texto

input Sirve para almacenar valores introducidos desde el teclado en unavariable

if(condicion)

...instrucciones

else

...instruciones

end

Si se cumple la condicion hace lo que se le indique, si no ejecuta el else, iniciacon if y termina con end.

for i = m : n

...instruciones

83

Page 84: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

end

Crea un ciclo desde i=m y se detiene hasta que i=n el ciclo debe terminarcon un end.

while(condicion)

...instrucciones

end.

crea un clico y se detiene hasta que la condicion se cumpla, debe terminarcon un end.

function [argumentosdesalida] = fun(argumentosdeentrada)

Esta el forma para crear funciones y comenzar a modularizar nuestros pro-gramas.

Ahora veamos un ejemplo:supongamos que queremos calcular la sumatoria de la sucesion de los primeros nnumeros, entonces el codigo seria de la siguiente forma.

n=input(’¿Cuántos términos quieres sumar? ’);

suma=0;

for i=1:n

suma=suma+i;

end

disp(’El valor pedido es’)

disp(suma)

En ejemplo anterior muestra como usar los comandos mas basicos, en el ejemplosiguiente mostramos un ejemplo en cual hacemos uso de todas las estructuras decontrol y secuencia que mencionamos.

84

Page 85: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Supongamos que queremos calcular el factorial de un numero, para ello debe-mos checar que los valores introducidos son validos (no negativos) y crear unafuncion especifica que se encarge de calcular el factorial.El programa para calcular lo anterior seria el siguiente

function principal

x=input(’introduce un numero’);

while(x<0)

disp(’dato no valido’);

x=input(’introduce un numero’);

end

facto = factorial(x);

disp(facto);

end

function fact = factorial(x)

fact=1;

if(x==0)

fact=1;

else

for i=1:x

fact=fact*i;

end

end

end

Para ejecutar el programa basta con escribir en el promt el nombre del archivoque creamos o con el mouse dar clic en debug y luego run

85

Page 86: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

El resultado a la hora de ejecutar el pograma es el siguiente.

Podemos deducir como podemos hacer nuestros programas usando no solo lasestructuras de control y secuencia que vimos si no tambien incorporar las funcionesgraficas a nuestros programas.

86

Page 87: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

B. listado del código

En el presente apéndice, se lista el código fuente de todas las funciones uti-lizadas para la reconstrucción del objeto, cabe señalar que el programa es suscep-tible de mejoras y de optimización con respecto al margen de error.

% Autores: Cruz Miguel Mario Alberto

% Guzmán Vázquez Jorge

% Ríos Perea Salvador

% Serrato Martínez Carlos

%

% Equipo: COMPUTACION

%

% Proyecto de investigación

%

% ’Reconstrucción de objetos sobre imágenes utilizando

% elementos del Algebra Geométrica ’

%

% En esta función se reciben 2 imágenes en formato .JPG las cuales

% contienen una imagen que representa un dado, el usuario nos indica

% algunos puntos y se trata de reconstruir el dado.

%

% Se crea un sistema de coordenadas global, después se crean dos ejes que

% representan los ejes focales de las cámaras, seguido de dos planos que

% representan las pantallas de las cámaras.

%

% Se calculan con referencia al sistema global la posición de las cámaras

% conforme al ángulo de rotación de las cámaras mediante Quaternios y se

% encuentra su posición con respecto al eje global

87

Page 88: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

function principal

%clear all;

%clc;

%Datos obtenidos a partir del experimento

%distancia de las cámaras al origen del sistema

distancia = 50;

imagen=’dado5.jpg’;

%ángulo rotación de las cámaras izq y der

angulo = tan(15/50);

%Datos obtenidos de la cámara

pixlar = 352; %píxeles a lo largo

pixanch = 288; %píxeles a lo ancho

largo = 17; %mm largo

anch = 14; %mm ancho

distfoc = 25; %mm distanca focal

%matriz de transformación de puntos de la pantalla a píxeles

C = [-pixlar*distfoc/largo , 0, pixlar/2; 0, -pixanch*distfoc/anch,...

pixanch/2; 0, 0, 1];

%se leen los puntos de las imagenes Izq y Der

figure(1)

puntos=puntos_imagen(imagen);

%transformación de los puntos de los planos a coordenadas reales

puntosaux=puntos{1};

puntosaux2=puntos{2};

pi = zeros(size(puntosaux,1),3);

pd = zeros(size(puntosaux,1),3);

aux = inv(C);

for i = 1:size(puntosaux, 1)

pi(i,:)=aux*[puntosaux(i,:),1]’;

pd(i,:)=aux*[puntosaux2(i,:),1]’;

end

pi= pi*distfoc

pd= pd*distfoc

88

Page 89: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

%los puntos de las imágenes Izquierda y Derecha hay que

%transformalos al sistema de coordenadas global

angulo_izq =-angulo;

angulo_der = angulo;

qi = [cos(angulo_izq/2), sin(angulo_izq/2)*[0,1,0]];

qd = [cos(angulo_der/2), sin(angulo_der/2)*[0,1,0]];

ejefocalizq = [ distancia, 0, 0];

ejefocalder = [-distancia, 0, 0];

for i = 1:size(pi, 1)

pi(i,:)=globales(ejefocalizq,qi,pi(i,:));

pd(i,:)=globales(ejefocalder,qd,pd(i,:));

end

disp(’puntos globales en el sistema’)

disp(pi);

disp(pd);

%se reconstruyen los puntos obtenidos de las cámaras

puntos_reales=algebra_geometrica(pi,pd,ejefocalizq,ejefocalder);

% se grafica el sistema con el resultado

figure(2);

sistema(angulo, distancia, puntos_reales );

close(figure(1));

end

89

Page 90: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

%Autor: Equipo COMPUTACION

%Fecha: 24/Agosto/2006

%Descripción: En esta función se muestran dos imagenes y el usuario

% ingresa con el mouse los puntos a reconstruir

function datos = puntos_imagen(imagen)

%se reserva espacio para el resultado

datos = cell(1, 2);

%Se lee y muestra la imagen deseada

im = rgb2gray(imread(imagen));

im1 = im(:, 1:end/2);

im2 = im(:, end/2+1:end);

subplot(121); imshow(im1); title(’Imagen Izquierda’);

hold on, plot(size(im1, 2)/2,size(im1, 1)/2, ’ob’);

resp=input(’Desea ingresar los puntos manualmente s/n:’,’s’);

if resp==’s’

disp(’Intro puntos imagen Izquierda ’);

for i=1:4

disp(’punto ’);

disp(i);

pIzq(i,1)=input(’ingrese el punto en x: ’);

pIzq(i,2)=input(’ingrese el punto en y: ’);

end

else

% Se le manda un mensaje al usuario

uiwait(msgbox(’Ingrese con el mouse los puntos en la figura de la

izquierda,presione ENTER para terminar’,’Atencion’, ’none’, ’modal’));

%se usa la funcion ginput para que el usuario

%ingrese los puntos deseados

pIzq = ginput

end

plot(pIzq(:, 1), pIzq(:, 2), ’r+’)

subplot(122); imshow(im2); title(’Imagen Derecha’)

hold on, plot(size(im2, 2)/2,size(im2, 1)/2, ’ob’);

90

Page 91: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

resp=input(’Desea ingresar los puntos manualmente s/n:’,’s’);

if resp==’s’

disp(’Intro puntos imagen Derecha’);

for i=1:4

disp(’punto ’);

disp(i);

pDer(i,1)=input(’ingrese el punto en x: ’);

pDer(i,2)=input(’ingrese el punto en y: ’);

end

else

% Se le manda un mensaje al usuario

uiwait(msgbox(’Ahora señale los puntos en la figura de la derecha,...

presione ENTER para terminar’,’Atencion’, ’none’, ’modal’));

pDer = ginput

end

plot(pDer(:, 1), pDer(:, 2), ’r+’)

%se guardan los puntos seleccionados

datos{1} = pIzq;

datos{2} = pDer;

end

91

Page 92: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

% Autores: Cruz Miguel Mario Alberto

% Guzmán Vázquez Jorge

% Ríos Perea Salvador

% Serrato Martínez Carlos

%

% Equipo: COMPUTACION

%

% Proyecto de investigación

% Fecha: 24/Agosto/2006

% Descripción: Esta función encuentra los puntos de la figura proyectando

% rectas y planos haciendo uso de las operaciones meet, join

% y braquets para encontrar una aproximación promedio de cada

% par de puntos de la figura

function puntos3D = algebra_geometrica(pIzq, pDer, O1, O2)

%se pasa a coordenadas homogéneas;

O1 = [O1, 1];

O2 = [O2, 1];

% size(pIzq,1) regresa el número de renglones

% y se crea una matriz

puntos3D = zeros((size(pIzq, 1)),3);

pizq= zeros((size(pIzq, 1)),4);

pder= zeros((size(pIzq, 1)),4);

% se pasa a coordenadas homogéneas

i=1;

for i=1:size(pIzq,1)

pizq(i,:)=[pIzq(i,:),1];

pder(i,:)=[pDer(i,:),1];

end

for i=1:size(pizq,1)

k=i;

m=i;

if (i==size(pizq,1))

k=0;

92

Page 93: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

end

if (i==1)

m=size(pizq,1)+1;

end

l1=plucker(...

meetpp(Plano(O1, pizq(i,:),pizq(k+1,:)), ...

Plano(O2, pder(i,:),pder(k+1,:))));

a1 =meetlp(l1,Plano(O1,pizq(m-1,:),pizq(i,:)));

l2=plucker(...

meetpp(Plano(O1, pizq(m-1,:),pizq(i,:)), ...

Plano(O2, pder(m-1,:),pder(i,:))));

a2 =meetlp(l2,Plano(O1,pizq(i,:),pizq(k+1,:)));

a1 =cartesianas(a1);

a2 =cartesianas(a2);

a=(a1+a2)/2;

puntos3D(i,:)=a;

end

93

Page 94: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

%Autor: Equipo COMPUTACION

%Fecha: 24/Agosto/2006

%Descripción:

function linea2 = plucker(linea1)

%Componente de dirección de la línea

u1 = linea1(1:3);

%Momento de la línea

u2 = linea1(4:6);

%Encontramos un punto en la línea

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

%disp(’descomposición’);

linea2 = Linea([Pperp 1], [p2 1]);

end

%Autor: Equipo COMPUTACION

%Fecha: 24/Agosto/2006

%Entrada: Dos planos

%Salida: Una recta

%Descripción: Se encuentra la intersección de dos planos

function linea = meetpp(p1,p2)

%Se produce la recta de intersección o Bivector en R4

linea = ...

bracket4(p1{1},p1{2},p1{3},p2{1})*join(p2{2},p2{3})+ ...

bracket4(p1{1},p1{2},p1{3},p2{2})*join(p2{3},p2{1})+ ...

bracket4(p1{1},p1{2},p1{3},p2{3})*join(p2{1},p2{2});

end

94

Page 95: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

%Autor: Equipo COMPUTACION

%Fecha: 24/Agosto/2006

%Descripción: Esta función encuentra el producto externo de

% dos puntos dando como resultado una línea.

function l = join(X,Y)

%Los puntos X y Y se pasan a coordenadas

X =X/X(4);

Y =Y/Y(4);

%Se reserva espacio para el resultado

l = zeros(1, 6);

%Se encuentra la dirección de la línea

l(1:3) = X(1:3)-Y(1:3);

%Se encuentra el momento de la línea

l(4:6) = cross(X(1:3),Y(1:3));

end

%Autor: Equipo COMPUTACION

%Fecha: 24/Agosto/2006

%Entrada: Una línea y un plano

%Salida : Un punto

%Descripción: Regresa el punto que resulta de la intersección

% de una línea con un plano, utilizando el operador bracket.

function punto = meetlp(l,p)

%Se obtiene el resultado

punto = ...

bracket4(l{1}, l{2}, p{2}, p{3})*p{1} + ...

bracket4(l{1}, l{2}, p{3}, p{1})*p{2} + ...

bracket4(l{1}, l{2}, p{1}, p{2})*p{3};

end

95

Page 96: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

%Autor: Equipo COMPUTACION

%Fecha: 24/Agosto/2006

%Descripción: Los tres puntos que definen al plano se guardan en una

% variable.

function p = Plano(Y1, Y2, Y3)

%Se reserva espacio para el resultado

p = cell(1, 3);

%Se guardan los puntos

p{1} = Y1;

p{2} = Y2;

p{3} = Y3;

end

%Autor: Equipo COMPUTACION

%Fecha: 24/Agosto/2006

%Entrada: Dos puntos

%Salida: Un dato tipo CELL

%Descripción: Esta función agrupa en un dato tipo CELL

% los dos puntos que definen una línea.

function p = Linea(X1, X2)

%Se reserva espacio para el resultado

p = cell(1, 2);

%Se guardan los puntos

p{1} = X1;

p{2} = X2;

96

Page 97: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

%Autor: Equipo COMPUTACION

%Fecha: 24/Agosto/2006

%Descricion: Esta función calcula el bracket de 4 vectores.

function a = bracket4(X1,X2,X3,X4)

X1 = X1/X1(4);

X2 = X2/X2(4);

X3 = X3/X3(4);

X4 = X4/X4(4);

X1 = X1(1:3);

X2 = X2(1:3);

X3 = X3(1:3);

X4 = X4(1:3);

a = bracket3( X2-X1,...

X3-X1,...

X4-X1);

end

%Autor: Equipo COMPUTACION

%Fecha: 23/Agosto/2006

%Descripción: Esta función calcula el bracket de un pseudoescalar

% formado por tres vectores.

function a = bracket3(x1, x2, x3)

m = zeros(3);

m(1, :) = x1;

m(2, :) = x2;

m(3, :) = x3;

a = det(m);

end

97

Page 98: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

%Autor: Equipo

%Fecha: 24/Agosto/2006

%Descripción: Se pasa de coordenadas homogéneas a coordenadas cartesianas.

function c =cartesianas(h)

%Se divide entre la cuarta componente

c = h/h(4);

%Se toman los tres primeros valores

c = c(1:3);

%Autor: Equipo COMPUTACION

%Fecha: 24/Agosto/2006

%Descripción:Esta función dibuja el sistema de coordenadas globales

% de acuerdo al ángulo, distancia y puntos reales proporcionados

% por el usuario.

function sistema(angulo, distancia, puntos_reales)

%crea los ejes de coordenadas

axis([-100, 100, -50, 50, -50, 400]);

xlabel(’x’);

ylabel(’y’);

zlabel(’z’);

hold on; grid on; axis equal;

%dibuja unos ejes en el origen

%Q es un quaternio y T es un vector de traslación

Q=[1,0,0,0]; T=[0,0,0];

ejes(Q,T);

%traza unos ejes para la cámara der

angulo_izq = -angulo;

QI = [cos(angulo_izq/2), sin(angulo_izq/2)*[0,1,0]];

TI = [distancia, 0, 0];

ejes(QI, TI);

camara(QI, TI);

98

Page 99: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

%traza unos ejes para la cámara izq

angulo_der = angulo;

QD = [cos(angulo_der/2), sin(angulo_der/2)*[0,1,0]];

TD = [-distancia, 0, 0];

ejes(QD, TD);

camara(QD, TD);

%puntos recibidos

disp(’puntos encontrados por metodos de Algebra Geometrica’);

disp(puntos_reales);

%dibuja las líneas de los puntos que se encontrarón

puntos_reales = [puntos_reales; puntos_reales(1, :)];

disp(’puntos reales encontrados para graficar ’);

disp(puntos_reales);

plot3( puntos_reales(:, 1), ...

puntos_reales(:, 2), ...

puntos_reales(:, 3), ’b’);

view(-190, -51);

end

99

Page 100: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

%Autor: Equipo COMPUTACION

%Fecha: 24/Agosto/2006

%Entrada:

%Salida:

%Descripción: Esta función dibuja los ejes de un sistema de

% coordenadas rotado por el cuaternio Q y trasladado

% por el vector T en el sistema de coordenadas global.

function ejes(q,t)

%longitud de los ejes

L =25;

%vectores unitarios

x = [L,0,0];

y = [0,L,0];

z = [0,0,L];

%vectores transformados

xx = globales(t,q,x);

yy = globales(t,q,y);

zz = globales(t,q,z);

%dibuja los ejes transformados

grosor = 2;

line([t(1), xx(1)], [t(2), xx(2)], [t(3), xx(3)], ’color’, [1,0,0],...

’LineWidth’, grosor);

line([t(1), yy(1)], [t(2), yy(2)], [t(3), yy(3)], ’color’, [0,1,0],...

’LineWidth’, grosor);

line([t(1), zz(1)], [t(2), zz(2)], [t(3), zz(3)], ’color’, [0,0,1],...

’LineWidth’, grosor);

end

100

Page 101: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

%Autor: Equipo COMPUTACION

%Fecha: 24/Agosto/2006

%Entrada:

%Salida:

%Descripción: Dibuja el plano que representa el lente de la cámara.

function dibujaCamara(Q, T)

%dibuja la cámara

radio = 3;

%dibuja el plano donde se forma la imágen

Lx = 20;

Ly = 20;

Lf = 25;

X = Lx*[-1 1 1 -1];

Y = Ly*[-1 -1 1 1];

%la distancia en Z es la distancia focal

Z = Lf*[1, 1, 1, 1];

p1 = [X(1), Y(1), Z(1)];

p2 = [X(2), Y(2), Z(2)];

p3 = [X(3), Y(3), Z(3)];

p4 = [X(4), Y(4), Z(4)];

p1 = globales(T,Q,p1);

p2 = globales(T,Q,p2);

p3 = globales(T,Q,p3);

p4 = globales(T,Q,p4);

X = [p1(1), p2(1), p3(1), p4(1)];

Y = [p1(2), p2(2), p3(2), p4(2)];

Z = [p1(3), p2(3), p3(3), p4(3)];

patch(X, Y, Z, ’c’);

end

101

Page 102: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

%Autor: Equipo COMPUTACION

%Fecha: 24/Agosto/2006

%Descripción: Esta función convierte un vector v en quaternio

% que al multiplicarlo por otro quaternio q es rotado

% y trasladado por un vector t.

function r = globales(t,q,v)

%normaliza el vector

long = norm(v);

if long ~= 0

v = v/long;

end

%convierte el vector a quaternio

v = [0, v];

%realiza la rotación

qconjugado = q;

qconjugado(2:4) = -q(2:4);

r = Qprod(q, Qprod(v, qconjugado));

r = r(2:4);

r = long*r;

%realiza la traslación

r = r+t;

end

%Autor: Equipo COMPUTACION

%Fecha: 24/Agosto/2006

%Descripción: Esta función realiza el producto de quaternios.

function r = Qprod(p, q)

r = zeros(1, 4);

r(1) = p(1)*q(1)-dot(p(2:4), q(2:4));

r(2:4) = p(1)*q(2:4)+q(1)*p(2:4)+cross(p(2:4), q(2:4));

end

102

Page 103: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte

Referencias

[1] Charlews K. Chui: An introducyion to wavelets, Academic Press,EE.UU.AA ,1992.

[2] Leonardo Traversoni Domínguez: On how to do wavelets of movements and its moaning

[3] Marius Mitrea: Clifford wavelets, Singular Integrals, and Hardy Spaces,Springer-Verlag, Alemania,1994

[4] Ives Meyer, Wavelets: Algorithms and Aplications, SIAM EE.UU.,1994

[5] Eduardo Bayro , Garret Sobczyc, Geometrie Algebra with applications in science and ingineir-ing,Birthaüser, EE.UU, 2001

[6] Richar Courant, Herbert Robbins, ¿Qué son las matemáticas? Conceptos Métodos y Fundamen-tos,Fondo de Cultura Económica,México,2002

[7] Hestones David: Clifford Algebra to Geometry Calculus, a unifield languaje for mathematics andphisics, 1993

[8] Joe Harris: Algebraic Geometry: A first Course,Springer 3rd edition, 1995

[9] Patrick Duval: Homographies Quaternions and Rotations,Clarendon Press

[10] Garrett Birkhoff and Tomas C. Batee:Modern Applied Algebra,Mc Graw-Hill, 1970

[11] Seth Warner: Modern Algebra,Vover Publications NY, 1990

[12] Garrett Birkhoff and Tomas C. Batee:Modern Applied Algebra,Mc Graw-Hill, 1970

[13] Benedetto, Jhon and Michael Frazier:Wavelets mathematics and applications,Ed Board,1993

[14] Garrett Birkhoff and Tomas C. Batee:Modern Applied Algebra,Mc Graw-Hill, 1970

[15] Doran Chris and Anthony Lasemby: Phisical Applications of Geometric Algebra,Disponible enhttp://www.mrao.cam.ace.uk/~clifford/ptiiicourse/, 1999

[16] Garrett Birkhoff and Tomas C. Batee:Modern Applied Algebra,Mc Graw-Hill, 1970

[17] Mann, Stephen and Leo Dorst: Geometric Algebre: A computation framework for geometricalappication part II. Computer graphics and aplications, 22(4): 58-67, July/August 2002

[18] Mann, Stephen, Leo Dorst and Tim Bouma:The matring of a geometric algebra package in mat-lab. Technical Report CS-99-27. University Waterloo,1999. Disponible en fttp://cs-archive.

uwaterloo.ca/cs-archive/cs-99-27/

103

Page 104: Para obtener el Título de: Presentan - 148.206.53.84148.206.53.84/tesiuami/UAMI13768.pdf · Wavelet´s, Quaterniones y Algebra Geometrica Aplicadas al Tratamiento de Imagenes Reporte