Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras...

download Conversion de Matrices, multiplicacion y operaciones con las matrices de dos dimensiones a otras requeridas

of 26

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&