Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras...
-
Upload
pauladelcb -
Category
Documents
-
view
218 -
download
0
Transcript of Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras...
-
7/26/2019 Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras requeridas
1/26
Conversin entre lasrepresentaciones matriz binaria y
rbol binario
-
7/26/2019 Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras requeridas
2/26
OBJETIVO
Nuestro proyecto consiste en realizar las conversiones entre las representaciones
de matriz binaria y rbol binario que son dos formatos que van a permitir la
representacin de imgenes digitales.
Una parte del software estar dedicada a dichas conversiones mientras que habr
otra parte que, partiendo de las representaciones en forma de rbol binario de dos conuntos
digitales ! y ", establecer una representacin en este mismo formato para los conjuntos
siguientes#
Complementario de !,
Unin de ! y "
$nterseccin de ! y "
%iferencia de ! y " & " ' ! (.
)ara la realizacin del proyecto no se han tenido en cuenta las convenciones de
cdigo establecidas en la librer*a Cppimasino que todo el software ha sido desarrollado enC sin necesidad de utilizar ning+n tipo abstracto de datos &sobre todo para tratar la
estructura rbol(.
-
7/26/2019 Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras requeridas
3/26
Introduccin
a representacin ms trivial de una imagen digital es en forma de matriz binaria,en la que el valor -/ representar al color N0123 y el valor -4/ al color 56NC3.
73tra posible representacin de la misma imagen consiste en emplear rboles binarios.
7)ara realizar la conversin entre una representacin de la imagen a su equivalente en rbol binariodebemos suponer que la matriz binaria es cuadrada y el rango de la misma es potencia de 8.
70n esta representacin obtendremos un rbol por cada fila de la matriz binaria, quealmacenaremos en una estructura para poder trabaar posteriormente sobre esta representacin enfuturas operaciones.
70l proceso principal de obtencin de un rbol binario consiste en ir dividiendo la fila en dosmitades cuando 9sta no tenga un valor constante, hasta que lleguemos al caso de encontrar un trozode tal fila cuyos elementos tengan el mismo valor o bien tengamos +nicamente una fila con un
+nico elemento, guandndose en ese caso informacin pictrica.
-
7/26/2019 Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras requeridas
4/26
Ejemplo representaciones Matriz binaria y rbol binario
-
7/26/2019 Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras requeridas
5/26
.%escripcin de tipos de datos usados en el programa.."ipo $:610N..8."ipo N3%3..;."656!.
.;..0emplo.8.Conversin :atriz binaria a
-
7/26/2019 Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras requeridas
6/26
!"#escripcin de tipos de datos usados en el programa" !"!"Tipo IM$%E&"
$:610N' 0structura registro que contiene toda la informacin acerca de las imgenesdigitales con las que trabaar el programa. 0st compuesta de@
(ilas ) *olumnas# N+mero de filas y columnas de la matriz. 0n nuestro caso,esta informacin estar almacenada en las constantes :6AB$6 y:6AC3U:N6 respectivamente.
&um*olores'2epresenta el n+mero de colores que tendr la imagen. 0n nuestrocaso, se trabaar con imgenes en blanco y negro. !e corresponde con laconstante NU:C3320!.
$dy&egro ) $dyBlanco'N+mero de vecinos que se tendrn en cuenta a la horade trabaar con los piels de la matriz. 1eneralmente los valores que se asignarnson# D'adyacencias para negro y ='adyacencias para blanco.
+i,el':atriz binaria que representa a la imagen, cuyo tamaEo por vendrdeterminado por los valores :6AB$6:6AC3U:N6.
-a estructura de datos IM$%E& se corresponde con la siguiente
implementacin en el cdigo *'
typedef struct image{
int Filas;
int Columnas;
int NumColores;
int AdyNegro;
int AdyBlanco;
byte Pixel[MAXF!A"[MAXC#!$MNA";
%MA&'N;
-
7/26/2019 Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras requeridas
7/26
N3%3# 0structura registro necesaria para la construccin de los rboles. %entro de esteregistro tendremos los siguientes campos#
.ijo/iz0 ) .ijo/der# )unteros a otra estructura del tipo N3%3.
#ato# Contenido del nodo. Fste podr ser N0123, 56NC3 o N6%6.
a estructura de datos N3%3 se corresponde en la implementacin C con elsiguiente cdigo#
typedef struct node {
struct node( )i*o+i,-;
struct node( )i*o+der;
tipopixel dato;
% N#.#;
!"1"Tipo &O#O"
-
7/26/2019 Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras requeridas
8/26
%ependiendo del tipo de rboles que se vayan a almacenar tendremos distintas tablas#
Tabla$rbolBinarioi# Contiene las referencias de los rboles binarios de coloresque representan la imagen i en el programa.
Tabla2niones# Contiene las referencias de los rboles binarios de coloresresultado de la unin de dos imgenes.
TablaIntersecciones# Contiene las referencias de los rboles binarios de coloresresultado de la interseccin de dos imgenes.
Tabla*omplementarios# Contiene los punteros a las ra*ces de los rbolesbinarios de colores resultado de invertir los colores &blanco y negro( de unaimagen.
Tabla#i3erencias# Contiene los punteros a las ra*ces de los rboles binarios decolores resultado de haber realizado la diferencia de dos imgenes.
!"4"T$B-$5"
N#.# (Con*untoArbolBinario[MAXF!A";
N#.# (Con*untoArbolBinario/[MAXF!A";
N#.# (0abla$niones[MAXF!A";
N#.# (0ablantersecciones[MAXF!A";
N#.# (0ablaComplementarios[MAXF!A";
N#.# (0abla.iferencias[MAXF!A";
-
7/26/2019 Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras requeridas
9/26
!"4"!"Ejemplo estructura *onjunto$rbolBinario"
-
7/26/2019 Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras requeridas
10/26
.%escripcin de tipos de datos usados en el programa.."ipo $:610N..8."ipo N3%3.
.;."656!..;..0emplo.8.Conversin :atriz binaria a
-
7/26/2019 Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras requeridas
11/26
Para cada fila de la matri, a transformar 1acer
2i la fila es toda de unos o toda de ceros entonces
nsertar un nodo 1o*a en el 3rbol binario correspondiente a esa fila con ese
4alor constante 5 uno o cero 6
2ino
.i4idir la fila en dos mitades
nsertar un nodo intermedio 5 sin informaci7n pictorica 6 en el 3rbol binario
0ransformar la primera mitad de la fila de entrada ya di4idida en 3rbol binario
5 se corresponder3 con el 1i*o i,-uierdo del 3rbol 6
0ransformar la segunda mitad de la fila de entrada ya di4idida en 3rbol binario
5 la informaci7n ir3 en el 1i*o derec1o 6
Finsi
.ibu*ar el 3rbol binario construido para esa fila
Finpara
1"6 *O&VE75I8& M$T7I9 BI&$7I$ $ 7BO- BI&$7IO
1"!"+seudocodigo"
-
7/26/2019 Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras requeridas
12/26
1"1"Ejemplo conversin Matriz binaria en rbol binario"
-
7/26/2019 Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras requeridas
13/26
.%escripcin de tipos de datos usados en el programa.."ipo $:610N..8."ipo N3%3..;."656!.
.;..0emplo.8.Conversin :atriz binaria a
-
7/26/2019 Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras requeridas
14/26
4"6 *O&VE75I8& 7BO- BI&$7IO $ M$T7I9 BI&$7I$
niciali,ar la 4ariable 8ni4el9 a cero 5 ni4el de profundidad -ue se alcan,a en el
recorrido 6
Para cada fila a reconstruir de la matri, 1acer
2i el 3rbol binario no es 4acio entonces
2i el 3rbol binario es una 1o*a entonces
:econstruir la fila 5 toda o parte de ella 6 a partir del n;mero de elementos
consecuti4os 5 con el mismo 4alor -ue la 1o*a 6 -ue ser3n dos ele4ado a 8
-
7/26/2019 Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras requeridas
15/26
4"1"Ejemplo conversin rbol binario en Matriz binaria"
-
7/26/2019 Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras requeridas
16/26
4"1"Ejemplo conversin rbol binario en Matriz binaria"
-
7/26/2019 Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras requeridas
17/26
.%escripcin de tipos de datos usados en el programa.."ipo $:610N..8."ipo N3%3..;."656!.
.;..0emplo.8.Conversin :atriz binaria a
-
7/26/2019 Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras requeridas
18/26
;. Complementario.
;.8 Unin > $nterseccin.
;.; %iferencia.
:"6 OBTE&*I8& #E *O&J2&TO5 $5O*I$#O5
-
7/26/2019 Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras requeridas
19/26
Para cada rbol binario de colores que componen la imagen hacer
Si el rbol es una hoja
Cambiar el color de la hoja
Sino
Realizar el clculo de rboles complementarios para el hijo izquierdo
Realizar el clculo de rboles complementarios para el hijo derecho
Finsi
Dibujar el rbol complementario
Finpara
:"!"6*omplementario"
-
7/26/2019 Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras requeridas
20/26
Para cada par de 3rboles binarios 5 uno de una imagen y el correspondiente de la
otra imagen 6 1acer
2i los dos 3rboles son nodos 1o*as
:eali,ar la intersecci7n=uni7n de las dos 1o*as colocando en el 3rbol resultado un nodo 1o*a con el resultado de la operaci7n reali,ada
2ino
2i los dos 3rboles son nodos intermedios
Crear un nodo intermedio en el 3rbol resultado
Calcular la intersecci7n=uni7n del 1i*o i,-uierdo de un 3rbol con el
1i*o i,-uierdo del otro
Calcular la intersecci7n=uni7n del 1i*o derec1o de un 3rbol con el
1i*o derec1o del otro
2i no
2i un 3rbol es un nodo 1o*a y el otro es un nodo intermedio
Crear un nodo intermedio en el 3rbol resultado
Calcular la intersecci7n=uni7n del nodo 1o*a con el 1i*o i,-uierdo
del 3rbol cuyo nodo era intermedioCalcular la intersecci7n=uni7n del nodo 1o*a con el 1i*o derec1o
del 3rbol cuyo nodo era intermedio
Finsi
Finsi
Finsi
.ibu*ar el 3rbol intersecci7n=uni7n
Finpara
:"1"62nin ) Interseccin
-
7/26/2019 Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras requeridas
21/26
:"1"!"Ejemplo 2nin de dos rboles binarios"
-
7/26/2019 Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras requeridas
22/26
Para cada par de rboles binarios
Obtener el complementario de uno de los dos rboles
Realizar la interseccin de uno de los rboles con el complementario del otro
Dibujar el rbol di!erencia
Finpara
:"4"6 #i3erencia
% i i d ti d d t d l
-
7/26/2019 Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras requeridas
23/26
.%escripcin de tipos de datos usados en el programa.."ipo $:610N..8."ipo N3%3..;."656!.
.;..0emplo.8.Conversin :atriz binaria a
-
7/26/2019 Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras requeridas
24/26
;"Trans3ormaciones lineales
T7$5-$*I8&
+ara trasladar todos los puntos de un objeto de una
posicin a otra< debemos tomar un punto de re3erenciainicial y especi3icar su destino" #e esta 3orma< todos losdems 0uedarn arrastrados en la direccin y con lamagnitud indicada por el vector de3inido por la di3erenciaentre los puntos 3inal e inicial" 5i este vector tienecomponentes =m< las ecuaciones de traslacin son'
,? @ , A my? @ y A n
#onde =,< y> representa un punto arbitrario del
objeto original y =,?< y?> es su trans3ormado portraslacin" -a siguiente 3igura ilustra una traslacin"
7OT$*I8&
-a rotacin de un objeto bidimensional se realizaalrededor de un punto denominado centro y 3ijando unngulo de giro" #ebe 0uedar claro 0ue podemossuponer 0ue el centro de rotacin es el origen de
coordenadas" *uando se trate de rotar un objeto respectoa otro punto =c,< bastar con concatenar la traslacin0ue aplica =c, en el origen< e3ectuar allB la rotacin ydevolver de nuevo =c, mediante la traslacin inversa"
-
7/26/2019 Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras requeridas
25/26
;"!"Ejemplo Traslacin vertical"
-
7/26/2019 Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras requeridas
26/26
(I&