Você está na página 1de 7

Figura1.

Transformada fourier
Imagen sinttica


Transformadas

Julian S. Rodrguez Acevedo

Resumen En este informe se presentan los resultados de la experimentacin con algunas
de las transformadas vistas en clase y su aplicacin en la compresin de imgenes usando
para ello la herramienta matlab.



Introduccin
Bsicamente una transformada consiste en
el proceso de convertir una seal a un
dominio diferente con el objetivo de
facilitar algunas operaciones reduciendo
de esta manera la complejidad matemtica
que implica la mayora de veces
manipular dicha seal. En este informe se
presenta la experimentacin que se realizo
al aplicar algunas transformadas a unas
imgenes con el objetivo de comprimirlas
aunque no es esta la nica aplicacin de
las transformadas.

Desarrollo

Transformada de Fourier

Se aplico la funcin de matlab: fft2 a
varias imgenes, de las cuales expongo los
resultados de dos de ellas:


En la Figura 1. Se aprecia la imagen
original, a la derecha aparece la imagen
correspondiente a la transformada de
Fourier en la que se puede apreciar que
toda la concentracin de la energa, y por
consiguiente la mayor informacin de la
imagen esta concentrada en el centro; por
esto se recorta la imagen conservando
solo la parte central;
En realidad se debe aclarar que la
transformada de fourier produce la
concentracin de la energa en las
esquinas como lo muestra la figura2, por
esto debe realizarse un desplazamiento
para obtener el resultado de la figura1.


















Figura 2. Verdadero resultado de la
transformada de Fourier sobre una
imagen
Figura 4. Transformada Coseno sobre
imagen sinttica
Figura 5. Transformada
Coseno sobre imagen real
Figura3. Transformada de Fourier
Imagen real


Una vez recortada se aplica la
transformada inversa, mediante la funcin
ifft2 Obteniendo la imagen reconstruida
que se muestra en la misma figura.

La reduccin en tamao de la imagen fue
de apenas unos cuantos bytes, habra sido
posible reducirla un poco ms, pero
perdera calidad.

Los resultados al aplicar la Transformada
de Fourier a otro tipo de imagen se
muestran en la figura3
















Con esta imagen se logro una compresin
de aproximadamente 2Kb, pero los
resultados en cuanto a prdida de calidad
son bastante notorios.

Transformada del Coseno

Para realizar las pruebas correspondientes
a la transformada del coseno se utiliz la
funcin del toolbox de matlab: dct2.

Siguiendo el mismo procedimiento se
obtuvieron los resultados mostrados en las
figuras 4 y 5 para diferentes imgenes. En
esta transformada, se puede observar
como la concentracin de la energa y por
tanto la mayor informacin de la imagen
se centra en el borde superior izquierdo,
por este motivo el proceso de compresin
Consiste en recortar esta regin de la
transformada para posteriormente realizar
la transformada inversa.



















En esta transformada para una perdida de
calidad comparativa con la obtenida
usando la transformada de Fourier se
logro una mayor compresin; mientras
que la imagen original tena un tamao de
Figura6.
Transformada onditas
usando db1
98KB, el resultado obtenido tiene un
tamao de 18KB.



Onditas

Para realizar la compresin mediante el
uso de la transformada onditas se uso la
funcin dwt2, la cual tiene como
argumentos, la imagen a transformar y el
tipo de ondita madre a usar. La
transformada devuelve la descomposicin
de la imagen en tres vectores: Los
coeficientes aproximados de la
transformada, los detalles de coeficientes
horizontales, los detalles de los verticales,
y los detalles de los diagonales.

Se realizaron pruebas con diferentes tipos
de onditas, y los resultados se ilustran en
las figuras 6 y 7; que detallan la imagen
original a si como su descomposicin de
cada uno de los coeficientes mencionados
anteriormente.



















El vector de coeficientes aproximados
tiene aproximadamente una reduccin de
tamao de un 22% con respecto al tamao
en Bytes de la imagen original.





























Figura7. Transformada onditas
usando haar
Conclusiones

Mediante un anlisis del resultado
de aplicar cada una de las
transformadas a una imagen, es
posible observar dnde se
encuentra la mayor parte de
informacin de la imagen para de
esta forma descartar el resto, de
esta manera es posible reducir el
tamao de la imagen.

De acuerdo a la transformada
utilizada es posible comprimir una
imagen teniendo una menor o
mayor perdida de informacin y
por consiguiente calidad de la
imagen.

El hecho de aplicar una
transformada a una imagen,
permite operar sobre ella de una
manera relativamente fcil,
evitando tratamiento matemtico
complicado.





































































Apndice - Cdigo de las practicas en matlab

%Practicas transformadas

%////////////
%Ejercicios
%****************** FOURIER **************************
%/////////////////////////////////////////////////////
close all
clear all
im=imread('E:\Imagenes digitales\Imgenes\Figura-09-09b.JPG');
im=rgb2gray(im); %conversion a grises
[M N]=size(im)
%figure,subplot(221),imshow(im),title('original')

imtr=fft2(im); % aplico transformada
imtrdespla=(fftshift(imtr)); %desplazamiento de la transformada
subplot(111),imshow(log(abs(imtr)),[]),title('transformada fft')
for i=1:M-50
for j=1:N-50
trnueva(i,j)=imtrdespla(i+25,j+25); %recorto la transformada
end %tomando la parte central
end
segundodesplaza=(fftshift(trnueva)); %Vuelvo a desplazar la nueva
transformada
imrecons=uint8(ifft2(segundodesplaza));%aplico transformada inversa


subplot(222),imshow(log(abs(imtrdespla)),[]),title('transformada fft')
subplot(223),imshow(imrecons),title('reconstruida')
subplot(224),imshow(log(abs(trnueva)),[]),title('transformada
recortada')
imwrite(imrecons,'E:\Imagenes
digitales\Imgenes\reconstruidas\imagen1','JPG');

%///////////////////////////////////////////////////////


%%***** COSENO ********************
close all
clear all
im=imread('E:\Imagenes digitales\Imgenes\Figura-05-13b.JPG');
im=rgb2gray(im)
[M N]=size(im)

imtr=dct2(im);%aplico la transformada

for i=1:M/3
for j=1:N/3
trnueva(i,j)=imtr(i,j); %recorto la transformada
end %tomando la parte de el borde superior
izquierdo
end

imrecons=uint8(idct2(trnueva));%aplico transformada inversa

figure,subplot(221),imshow(im),title('original')
subplot(222),imshow(uint8(imtr)),title('transformada Coseno')
subplot(223),imshow(imrecons),title('reconstruida')
subplot(224),imshow(log(abs(trnueva)),[]),title('transformada
recortada')
imwrite(imrecons,'E:\Imagenes
digitales\Imgenes\reconstruidas\imagen2','JPG');

%///////////////////////////////////////////////////////////////

%%***** walsh - ha ********************
close all
clear all
im=imread('E:\Imagenes digitales\Imgenes\Figura-05-13b.JPG');
im=rgb2gray(im)
[M N]=size(im)

imtr=walshbidi(im)
figure,subplot(221),imshow(im),title('original')
subplot(222),imshow(uint8(imtr)),title('transformada Walsh')




for i=1:M/3
for j=1:N/3
trnueva(i,j)=imtr(i,j); %recorto la transformada
end %tomando la parte de el borde superior
izquierdo
end

imrecons=uint8(idct2(trnueva));%aplico transformada inversa

figure,subplot(221),imshow(im),title('original')
subplot(222),imshow(uint8(imtr)),title('transformada Coseno')
subplot(223),imshow(imrecons),title('reconstruida')
subplot(224),imshow(log(abs(trnueva)),[]),title('transformada
recortada')
imwrite(imrecons,'E:\Imagenes
digitales\Imgenes\reconstruidas\imagen2','JPG');




%///Transformada Onditas

close all
clear all
im=imread('E:\Imagenes digitales\Imgenes\Figura-05-13b.JPG');
im=rgb2gray(im)

[cA1,cH1,cV1,cD1] = dwt2(im,'haar');
imrec=idwt2(cA1,cH1,cV1,cD1,'db1');
imrec=uint8(imrec)
figure,subplot(321),imshow(im),title('original')
subplot(322),imshow(cA1),title('CA')
subplot(323),imshow(cH1),title('CH')
subplot(324),imshow(cV1),title('CV')
subplot(325),imshow(cD1),title('CD')
subplot(326),imshow(imrec),title('reconstruida')
imwrite(cA1,'E:\Imagenes
digitales\Imgenes\reconstruidas\imagen5','JPG');

Você também pode gostar