> Entries (RSS)

Sep 27

Compresión de imágenes usando la transformada de wavelet y el algoritmo de Huffman Publicada por AlejoCendek en Informática, Software .

wavelet 300x178 Compresión de imágenes usando la transformada de wavelet y el algoritmo de Huffman

Hoy quiero compartirles un artículo que he escrito acerca de como comprimir imágenes, usando la transformada de wavelet, y el algoritmo de huffman. también quiero compartirles una implementación de este proceso en matlab.

El artículo explica el proceso, y demuestra cuanto comprime. se recomienda leer el articulo y hacer las comparaciones en los programas, pues el uso de pdf altera la calidad de las imágenes.

Compresión de imágenes usando la transformada de wavelet y el algoritmo de huffman(PDF)

Códigos en Matlab, Transformada de Wavelet

Agrega tu comentario

4 comentarios para este post

  1. 01   •   Francisco C C comenta:

    La implementación en matlab estupenda, pero me da un fallo, si alguién pudiera ayudarme….

    ??? Undefined function or method ‘reconstruir’ for input arguments of type ‘double’.

    Error in ==> waveletCarmen at 68
    recuperada=reconstruir(fpbtpbd,fpbtpad,fpatpbd,fpatpad);

    Ya que la función recontruir no esta definida, podría alguien darme la función definida???.
    O si el fallo esta en otra parte, decidmelo por favor.
    Muchas gracias!!!!!

  2. 02   •   Fran CC comenta:

    Alguien puede ayudarme??, en la implementación en matlab, me da un error la función reconstruir, me dice que no esta definida. Podría alguien mandarmela definida, escribirla aqui, o algo????

  3. 03   •   AlejoCendek comenta:

    la función reconstruir es la siguiente

    function img = reconstruir(pbpb,pbpa,papb,papa)
    pbpb=deshacacerDiezmado(pbpb,2);
    pbpa=deshacacerDiezmado(pbpa,2);
    papb=deshacacerDiezmado(papb,2);
    papa=deshacacerDiezmado(papa,2);

    fpb=[1/sqrt(2),1/sqrt(2)];
    fpa=[-1/sqrt(2),1/sqrt(2)];

    pb1=filter2(fpb',pbpb);
    pb2=filter2(fpa',pbpa);

    pa1=filter2(fpb',papb);
    pa2=filter2(fpa',papa);

    pb=pb1+pb2;
    pa=pa1+pa2;

    pb=deshacacerDiezmado(pb,1);
    pa=deshacacerDiezmado(pa,1);

    pb=filter2(fpb,pb);
    pa=filter2(fpa,pa);

    img=pb+pa;

    necesitaran también esta funcion llamada deshacerDiezmado

    function img=deshacacerDiezmado(imagen,sentido)%sentido, 1 para hacerlo verticalmente y 2 para hacerlo horizontal
    [h,w]=size(imagen);
    if sentido == 1
    img=zeros(h,w*2);
    else
    img=zeros(h*2,w);
    end

    if sentido == 1
    for i=1:2:w*2
    img(:,i)=imagen(:,(i+1)/2);
    end
    else
    for i=1:2:h*2
    img(i,:)=imagen((i+1)/2,:);
    end
    end
    end

    si les hace falta algo dejen sus comentarios.

  4. 04   •   Julio comenta:

    Hola que tal, excelnete codigo, sin embargo no encuentro en donde se almacena la imagen de salida, si me pudieses decir en donde se encuentra te agradeceria mucho, de antemano Gracias

Agregar un comentario


  • Acerca de...

    Todotecnologia.net es un blog dedicado a informar sobre los últimos avances de la tecnología, manuales y configuraciones de equipos y software, avances e información de los últimos juegos y consolas, descargas de Drivers y todo lo referente a los sistemas tecnológicos actuales.