Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Mejora de Imagen Matlab
Mejora de Imagen Matlab
Trabajo Prctico N1
-Tema C-
Seales Bidimensionales
1. Graficar las seales discretas x1 y x2.
a) x1[n]=3n-2, 0n4
>>n=[0:1:4];
x1=3n-2;
plot(x1);
b) x2[n]=sin(n/3), 0n6
>>n=[0:1:6];
x2=sin(n*pi/3);
plot(x1);
2.
a) Dar la transforma de Fourier Discreta punto N, con N=6, de x1 y x1.
>>Fx1=fft(x1,6);
Fx1 = 0.0000
-0.0000
0.0000
-0.0000 + 3.0000i
-0.0000
0.0000
-0.0000 + 3.0000i
>>Fx1=fft(x2,6)
Fx1 = 0.0000
M=20
M=0
c) Pensando en la extensin de la seal x1 a una seal peridica de perodo N=7, denotada x3,
calcular los coeficientes de la Serie de Fourier:
>>x3=[-2 1 4 7 10 0 0]
fft(x3)
ans =
Columns 1 through 6
20.0000
1.5849i
Column 7
-17.5831 + 3.3799i
e) Calcule la convolucin circular de 8 puntos de las seales x1 con x2 (denotada por x1*x2).
Tenemos que la convolucin circular entre x1 y x2 es igual a la antitransformada del producto de
sus respectivas transformadas de Fourier. Para que se cumpla que la convolucin circular coincida
con la lineal, se debe cumplir que Nn+m-2, siendo m y n los elementos de x1 y x2. Para este caso
N7+7-2=12. En matlab:
>>convcx1x1=ifft(fft(x1,12).*fft(x2,12))
convcx1x1 =
Columns 1 through 10
-0.0000 -1.7321 -0.8660 4.3301 11.2583 15.5885 4.3301 -9.5263 -14.7224 -8.6603
Columns 11 through 12
0
Que son los mismos valores obtenidos en la convolucin lineal hecha anteriormente.
3. Calcular el producto de convolucin 2-D de las imgenes representadas por las matrices A y B
>> A=[3,1,-1;0,2,1];
B=[3,2,2;1,1,2;0,2,1];
conv2(A,B);
ans =
9 9 5 0 -2
3 10 13 7 0
0 8 8 4 1
0 0 4 4 1
4. Genere y grafique una imagen con 7 bandas verticales con niveles de gris decrecientes
del blanco al negro.
>>b=ones(32);
linea=[0.*b, .2.*b, .4.*b, .6.*b, .8.*b, b];
bandas=[linea;linea;linea;linea;linea];
imshow(bandas)
5. Obtenga la DFT 2-D de la imagen del ejercicio 3 y grafique su valor absoluto, el valor
absoluto centrado y una transformacin logartmica de esta ltima.
>>c=conv2(A,B);
C=fftshift(fft(c));
subplot(1,3,1), imshow(abs(C)), title Abs;
subplot(1,3,2), imshow(abs(fftshift(c))), title Centrada;
subplot(1,3,3), imshow(0.2*log(1+abs(fftshift(c)))), title Log;
6. Forme una coleccin de las 3 imgenes graficadas en el ejercicio 5.
Mejora de Imagen
1. Dada las imgenes Degrad horizontal de gris y Damero en negro y gris, aplique la
transformada de Fourier de dichas imgenes una transformacin logartmica conveniente
para visualizarla correctamente.
>> I=checkerboard(8);
b=ones(32); linea=[0.*b, .2.*b, .4.*b, .6.*b, .8.*b, b];
bandas=[linea;linea;linea;linea;linea];
subplot(1,2,1), imshow(0.2*log(1+abs(fftshift(fft(I))))), title Damero;
subplot(1,2,2), imshow(0.2*log(1+abs(fftshift(fft(bandas))))), title Bandas;
a)Convirtala a su negativo:
>> GGN=imadjust(GG,[0 1],[1 0],1);
imshow(GGN)
b)Aclrela
>> GGA=imadjust(GG,[], [0.2 1],0.4);
imshow(GGA);
c) Oscurzcala
>> GGO=imadjust(GG,[],[],1.6);
imshow(GGO);
Histogramas:
>> subplot(2,3,1), imhist(GG), title 'Blanco y Negro'; subplot(2,3,2), imhist(GGN), title 'Negativo';
subplot(2,3,3), imhist(GGA), title 'Aclarada'; subplot(2,3,4), imhist(GGO), title 'Oscurecida';
subplot(2,3,5), imhist(GGG), title 'Realce de niveles medios';
3. Ecualice los histogramas de los ejercicios anteriores. Muestre los resultados obtenidos
comparando con las imgenes originales.
4. Disee dos filtros espaciales y aplquelos a las imgenes de los ejercicios anteriores.
Muestre los resultados obtenidos.
Restauracin de la Imagen
Filtro de Mediana:
>>Isyp1fmed=medfilt2(Isyp1);
Isyp2fmed=medfilt2(Isyp2);
Ig1fmed=medfilt2(Ig1);
Ig2fmed=medfilt2(Ig2);
>>subplot(2,2,1),imshow(Isyp1fmed),title 'Filtro de Mediana, Salt & Pepper bajo'
subplot(2,2,2),imshow(Isyp2fmed),title 'Filtro de Mediana, Salt & Pepper alto'
subplot(2,2,3),imshow(Ig1fmed),title 'Filtro de Mediana, Gaussiano bajo'
subplot(2,2,4),imshow(Ig2fmed),title 'Filtro de Mediana, Gaussiano alto'
3)
Para el caso de las bandas de grises, los mtodos de mejora de imagen no han presentado
ninguna diferencia notable. Para un caso diferente, segn sea el tipo de ruido, dar
mejores resultados utilizar un filtro u otro.
Aadir Ruido:
>>Isyp1=imnoise(I,'salt & pepper', 0.05);
Isyp2=imnoise(I,'salt & pepper', 0.1);
Ig1=imnoise(I,'gaussian',0.01);
Ig2=imnoise(I,'gaussian',0.1);
>>subplot(2,2,1),imshow(Isyp1),title 'Ruido Salt & Pepper bajo'
subplot(2,2,2),imshow(Isyp2),title 'Ruido Salt & Pepper alto'
subplot(2,2,3),imshow(Ig1),title 'Ruido Gaussiano bajo'
subplot(2,2,4),imshow(Ig2),title 'Ruido Gaussiano alto'
Filtro de Mediana:
>>Isyp1fmed=medfilt2(Isyp1);
Isyp2fmed=medfilt2(Isyp2);
Ig1fmed=medfilt2(Ig1);
Ig2fmed=medfilt2(Ig2);
>>subplot(2,2,1),imshow(Isyp1fmed),title 'Filtro de Mediana, Salt & Pepper bajo'
subplot(2,2,2),imshow(Isyp2fmed),title 'Filtro de Mediana, Salt & Pepper alto'
subplot(2,2,3),imshow(Ig1fmed),title 'Filtro de Mediana, Gaussiano bajo'
subplot(2,2,4),imshow(Ig2fmed),title 'Filtro de Mediana, Gaussiano alto'
Para este nuevo caso se encontr un desempeo muy similar para el primer filtro de valor
medio y el filtro de mediana, pero se encontr una gran diferencia en el segundo filtro de valor
medio utilizado. Para este ltimo la calidad obtenida no fue tan buena como las dems, ya que
este utiliza una matriz de unos ms grande para realizar el filtrado, por lo que al calcular el
promedio de los valores se observan los resultados mostrados anteriormente.
Size
64x64
Bytes Class
32768 double array