preguntasfbffnhnh
Post on 27-Jan-2016
212 Views
Preview:
DESCRIPTION
TRANSCRIPT
PREGUNTA 1:
Una matriz de datos se entiende por poner ceros y unos a la matriz que se obtiene con el comando imread .
%pregunta 1A= imread('casaimagen.jpg')% con este comando leemos la imagen convirtiendola a matrizimshow('casaimagen.jpg')% con este comando mostramos la imagen a procesar%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Colocando datos en las matrices GR1 = rgb2gray(A);%Con este comando convertiremos la imagen a escala de grises para poder realizar la binarizacion figure, imshow(GR1)%Binarizacion umbral = 175; %definimos un umbral = 175 ya es dato[m,n] = size(GR1);GR1B = zeros(size(GR1)); %le asignamos valor temporal de zeros a GRB1for i=1:m % con estos dos for barremos todos los pixles de las matrices para ponerlos a ceros y unos for j=1:nif GR1(i,j) >= umbralGR1B(i,j) = 1;elseGR1B(i,j) = 0;endendendfigure, imshow(GR1B)
Se obtiene la imagen con ceros y unos
PREGUNTA 2:
Para convertir a monocromático o escala de grises utilizamos el comando rgb2gray
I=imread('casaimagen.jpg') % lee una imagen
A= rgb2gray(I) %convirtiendo a escala de grises
figure, imshow(A) %poniendo figure , y luego imshow(A)
mostramos la imagen que se obtiene
Imagen a escala de grises o monocromática
PREGUNTA 3:
I=imread('casaimagen.jpg') % lee una imagen indexada o con
intensidad
A = rgb2gray(I) %convertimos a escala de grises para que el comando
fft2 pueda usarse
ima_out =fft2(A) %aplicamos el comando fft2 guardamos en ima_out
el resultado de aplicar fft2
%E=abs(ima_out);
figure, imshow(abs(ima_out),[]) % abs mostrara la magnitud donde []
significa los valores de intensidad
colorbar %leyenda barra de colores con valores numericos
figure, imshow(angle(ima_out),[])%angle mostrara la fase donde []
significa los valores de intensidad
colorbar
Magnitud después de aplicar la transformada de fourier
Fase después de aplicar la transformada de Fourier
PREGUNTA 4:
%pregunta 4
I=imread('casaimagen.jpg') % lee una imagen indexada o con
intensidad
A = rgb2gray(I) %convertimos a escala de grises
ima_out =fft2(A) % aplicamos la transformada de fourier
c_g_t=ifft2(ima_out); %aplicamos el comando la transformada inversa
de fourier
figure, imshow(c_g_t, [ ]); %desplegamos el resultado en la variable
c_g_t
Resultado que se obtuvo de aplicar la ifft2
Conclusiones:
Como se puede ver si se obtuvo la imagen original en este caso la de escala de grises a partir de aquí se podría obtener la original que se dio.
PREGUNTA 5:
%pregunta5
I=imread('casaimagen.jpg') % lee una imagen indexada o con
intensidad
A = rgb2gray(I) %convertimos a escala de grises ahora este se volvera
imagen original
ima_out =fft2(A) %aplicamos la transformada de fourier
ima_out2=ima_out/3; %dividimos entre 3 ima_out porque asi se pide
c_g_t=ifft2(ima_out2); %aplicamos la transformada inversa de fourier
figure, imshow(c_g_t, [ ]); %desplegamos los resultados [] estos
corchetes indican todo
Resultado de dividir entre y luego aplicar la transformada inversa de
Fourier
Conclusion :
Como se ha convertido en un inicio la imagen original a escala de grises ahora escala de grises se
convertirá en la imagen original se obtuvo la imagen original al aplicar la transformada inversa
pero como se dividió entre 3 a ima_out es decir se dividió entre 3 la parte imaginaria y real un
poco los bordes se distorsionaron pero si se logro obtener la imagen original un poco modificada.
PREGUNTA 6:
%pregunta6
I=imread('casaimagen.jpg') % lee una imagen indexada o con
intensidad
A = rgb2gray(I) %convertimos a escalas de grises
ima_out =fft2(A) %aplicamos el comando de fft2 de la transformada de
fourier
ima_out2=-imag(ima_out); %extraemos solo la parte imaginaria con
imag y la convertimos a negativa
c_g_t=ifft2(ima_out2); %aplicamos el comando la transformada
inversa de fourier
figure, imshow(c_g_t, [ ]); %desplegamos el resultado en la variable
c_g_t indicando que queremos ver todo con []
Resultado de cambiar la parte imaginaria a negativa y luego aplicar la transformada inversa
Conclusión :
Como se puede ver en la imagen después de cambiar la parte
imaginaria a negativa que no es entrega el comando fft2 y luego
aplicar la transformada inversa con ifft2 no se puede apreciar nada
ya fue alterada la parte de la frecuencia
PREGUNTA 7:
Sintaxis para filtros especiales
comando filtro especial
h=fspecial(‘average’,[tamaño de ventana])
k=imfilter (Imagen,h)
Para este caso average se llamara gaussiano el tamaño de
ventana sera de 2x2 por enunciado bidimensional .
%pregunta 7
I=imread('casaimagen.jpg');
J = imnoise(I,'gaussian',0.02); % añade ruido a la imagen para ver
mejor el efecto que causa el filtro promedio
h=fspecial('gaussian',[2 2],2); % crea un tipo especial de filtro
gaussian con una ventana de 2x2
K=imfilter(J,h); % aplica el filtro gaussiano
imshow(J)%despliega la imagen original
figure, imshow(K) %despliega la imagen con el filtro gaussiano
Imagen inicial con ruido
Imagen sin ruido aplicándole el filtro gaussiano
PREGUNTA 8:
Con respecto a la pregunta 7
Para ver la efectividad del filtro se le agrego ruido gaussiano.
Se implemente un filtro de ventana 2x2 bidimensional aplicando el
filtro gaussiano en la imagen final se puede ver que pudo quitar el
ruido introducido.
Con respecto a las demás preguntas:
Un aspecto importante es que el comando fft2 calcula la transformada de Fourier considerando que el origen de los datos es la parte superior izquierda de la imagen esto no representara ningún problema en el punto de vista calculo pero si de visualización como se puede ver en la pregunta 3
La función ifft2 podría retornar pequeños componentes imaginarios resultado de los errores de redondeo de punto flotante como se pudo ver en las preguntas 4, 5 y 6 en el enunciado se pidió manipular algunas partes el resultado dio imágenes un poco distorsionadas y en algunos casos no se podía visualizar nada .
top related