Professional Documents
Culture Documents
Alumno:
Carrión Robles, Luis Gerardo 20134507G
García Chávez, Gabriel Enrique 20154004K
Curso:
PROCESAMIENTO DIGITAL DE IMÁGENES MT420
Profesor:
Ing. Mesones Málaga, Gustavo
Reto 1:
El reto 1 consiste en cambiar la orientación de la imagen con el fin de poder
visualizarla correctamente, esto se logra gracias a una matriz de transformación
de coordenadas.
El siguiente código en Matlab es el algoritmo para resolver el reto 1:
clc
close all
clear all
t_proj = projective2d(T);
I_projective = imwarp(I,t_proj,'FillValues',fill);
%Ploteamos la imagen original y la nueva enfocando con zoom la sección del texto
subplot(1,2,1)
imshow(I)
title('Original')
subplot(1,2,2)
imshow(I_projective)
title('Projective')
Reto 2:
El reto 2 consiste en utilizar algoritmos de lógica difusa para poder mejorar la
calidad de imagen, este algoritmo es principalmente para imágenes de noche o
antiguas.
El siguiente código en Matlab es el algoritmo para resolver el reto 2:
%ejm2fuzz
clc
clear all
close all
ff=imread('final.jpg');
h1=fspecial('average',[2,2]);
ff=imfilter(ff,h1);
udark=@(z)1-sigmamf(z,0.25,0.5);
ugray=@(z)triangmf(z,0.25,0.5,0.75);
ubright=@(z)sigmamf(z,0.5,0.9);
subplot(3,1,1)
fplot(udark,[0 1],20);
hold on
fplot(ugray,[0 1],20);
fplot(ubright,[0 1],20);
udarker=@(z)bellmf(z,0.0,0.1);
umidgray=@(z)bellmf(z,0.4,0.5);
ubrighter=@(z)bellmf(z,0.8,0.9);
rules={udark;ugray;ubright};
outmf={udarker,umidgray,ubrighter};
F=fuzzysysfcn(rules,outmf,[0 1]);
z=linspace(0,1,256);
T=F(z);
gr=intrans(ff,'specified',T);
title('gráfico de función de membresía')
subplot(3,1,2)
imshow(ff);
title('imagen original')
subplot(3,1,3)
imshow(gr);
title('imagen mejorada')
Reto 3:
El reto 3 consiste en utilizar algoritmos de compresión de datos usando la
transformada discreta de cosenos además posteriormente descomprimir la
imagen y comparar la aceptación de la imagen a diferentes ratios de compresión.
El siguiente código en Matlab es el algoritmo para resolver el reto 3:
clc
close all
clear all
AA=imread('lena512.bmp');
subplot(2,2,1)
imshow(AA)
B=dct2(AA);
subplot(2,2,2)
imshow(B)
Bmax=max(max(abs(B)));
Btrig=16;
B(abs(B)<Btrig)=0;
Bs=sparse(round(B/16));
save(['lena512Trig' mat2str(Btrig)],'Bs')
subplot(2,2,3)
imshow(B)
A=idct2(B)/255.0;
subplot(2,2,4)
imshow(A)
El siguiente código muestra como se desarrolla la descompresión de nuestra
antes comprimida, con la cual se compara a diferentes ratios de compresión
(división de memoria ocupada por la imagen comprimida sobre la memoria
ocupada por imagen original).