Vous êtes sur la page 1sur 6

Instituto Politécnico Nacional Unidad Profesional Interdisciplinarias en Ingeniería y Tecnologías

Avanzadas

Practica 10: Filtros con Transformada de Fourier "Ideal"

Autor: Moncayo Bravo Pedro Alan

Antecedentes Teóricos:

En función del teorema de la convolución, los principios de mejora en el dominio de la frecuencia


se basan en: calcular la transformada de Fourier de la imagen a mejorar, multiplicar el resultado
por la función de transferencia de un filtro y, finalmente, tomar la transformada inversa de Fourier
para llegar a la imagen mejorada.

Filtrado Paso Baja (Suavizado)

Como ya se ha comentado, los bordes y otras transiciones bruscas (como el ruido) en los niveles
de gris de una imagen contribuyen significativamente al contenido en altas frecuencias de su
transformada de Fourier.

El difuminado (o suavizado) se consigue, en el dominio de la frecuencia, a base de atenuar un


rango específico de componentes de alta frecuencia en la trasformada de una imagen dada.

Los filtros que veremos serán del tipo que actuarán sobre las partes real e imaginaria de la imagen
transformada de la misma forma. A este tipo de filtros se les denomina filtros de fase nula, pues
no alteran la fase de la transformada.

Filtro paso baja Ideal

Un filtro de paso bajo bidimendional ideal es aquel cuya función de transferencia verifica la
siguiente relación:

donde Do es una cantidad especificada no negativa (frecuencia de corte) y D(u,v) es la distancia


desde el punto (u,v) al origen de coordenadas del plano de frecuencias)

Esta figura muestra un filtro ideal, en donde todas las frecuencias dentro de un círculo de radio Do
pasan sin atenuación, mientras que todas las frecuencias fuera de este círculo quedan atenuadas
completamente.
La sección transversal de un filtro de paso bajo viene caracterizada por el punto de transición
entre H(u,v)=1 y H(u,v)=0, punto que se denomina frecuencia de corte.

El brusco corte de frecuencias de un filtro de paso bajo ideal no se puede realizar a base de
componentes electrónicas, aunque ciertamente puede ser simulado en una computadora.

Codigo en MATLAB

close all; clear all; clc;


FF=input('Coloca el valor de tu filtro pasa altas no mayor a 1: ');
B=imread('butterfly.jpg');
A=rgb2gray(B);
figure
subplot(2,3,1);
imshow(A);
C=fft2(A);
subplot(2,3,2)
imshow(log(abs(C)),[]);
D=fftshift(C);
subplot(2,3,3)
imshow(log(abs(D)),[]);
title('Espectro en Frecuencia');
E=ifft2(ifftshift(0));
[u,v]=freqspace(size(A),'meshgrid');
cir1=sqrt((u.^2)+(v.^2))>FF;

H_ideal=zeros(size(A));
H_ideal(cir1)=1;
subplot(2,3,4)
imshow(H_ideal);
subplot(2,3,5)
meshc(u,v,H_ideal);

F=D.*H_ideal;
G=ifft2(ifftshift(F));
subplot(2,3,6)
imshow(uint8(abs(G)));
title('Filtro Pasa Altas');

close all; clear all; clc;


FF=input('Coloca el valor de tu frecuencia alta: ');
FF1=input('Coloca el valor de tu frecuencia baja: ');
B=imread('butterfly.jpg');
A=rgb2gray(B);
figure
subplot(2,3,1);
imshow(A);
C=fft2(A);
subplot(2,3,2)
imshow(log(abs(C)),[]);
D=fftshift(C);
subplot(2,3,3)
imshow(log(abs(D)),[]);
title('Espectro en Frecuencia');
E=ifft2(ifftshift(0));
[u,v]=freqspace(size(A),'meshgrid');
cir1=sqrt((u.^2)+(v.^2))>FF;
cir2=sqrt((u.^2)+(v.^2))<FF1;
cir3=not(cir1|cir2);

H_ideal=zeros(size(A));
H_ideal(cir3)=1;
subplot(2,3,4)
imshow(H_ideal);
subplot(2,3,5)
meshc(u,v,H_ideal);

F=D.*H_ideal;
G=ifft2(ifftshift(F));
subplot(2,3,6)
imshow(uint8(abs(G)));
title('Filtro Pasa Banda');

close all; clear all; clc;


FF=input('Coloca el valor de tu frecuencia alta: ');
FF1=input('Coloca el valor de tu frecuencia baja: ');
B=imread('butterfly.jpg');
A=rgb2gray(B);
figure
subplot(2,3,1);
imshow(A);
C=fft2(A);
subplot(2,3,2)
imshow(log(abs(C)),[]);
D=fftshift(C);
subplot(2,3,3)
imshow(log(abs(D)),[]);
title('Espectro en Frecuencia');
E=ifft2(ifftshift(0));
[u,v]=freqspace(size(A),'meshgrid');
cir1=sqrt((u.^2)+(v.^2))>FF;
cir2=sqrt((u.^2)+(v.^2))<FF1;
cir3=(cir1|cir2);
H_ideal=zeros(size(A));
H_ideal(cir3)=1;
subplot(2,3,4)
imshow(H_ideal);
subplot(2,3,5)
meshc(u,v,H_ideal);

F=D.*H_ideal;
G=ifft2(ifftshift(F));
subplot(2,3,6)
imshow(uint8(abs(G)));
title('Filtro Rechaza Banda');

close all; clear all; clc;


FF=input('Coloca el valor de tu filtro pasa bajas: ');
B=imread('butterfly.jpg');
A=rgb2gray(B);
figure
subplot(2,3,1);
imshow(A);
C=fft2(A);
subplot(2,3,2)
imshow(log(abs(C)),[]);
D=fftshift(C);
subplot(2,3,3)
imshow(log(abs(D)),[]);
title('Espectro en Frecuencia');
E=ifft2(ifftshift(0));
[u,v]=freqspace(size(A),'meshgrid');
cir1=sqrt((u.^2)+(v.^2))<FF;

H_ideal=zeros(size(A));
H_ideal(cir1)=1;
subplot(2,3,4)
imshow(H_ideal);
subplot(2,3,5)
meshc(u,v,H_ideal);

F=D.*H_ideal;
G=ifft2(ifftshift(F));
subplot(2,3,6)
imshow(uint8(abs(G)));
title('Filtro Pasa Bajas');

Resultados:
Bibliografia:

http://www2.elo.utfsm.cl/~elo328/pdf1dpp/PDI08_Frecuencia_1dpp.pdf

http://www.sc.ehu.es/ccwgrrom/transparencias/pdf-vision-1-transparencias/capitulo-5.pdf

http://www.varpa.org/~mgpenedo/cursos/Ip/Tema4/nodo4_3.html

Vous aimerez peut-être aussi