You are on page 1of 45

Tratamiento de imgenes

en el dominio de la
frecuencia
Transformada de Fourier
Transformada: Representacin alternativa de una
imagen
Transformada de Fourier: Cualquier seal
peridica puede representarse por una suma de
seales basadas en senos y cosenos con
diferente amplitud, frecuencia y fase
Transformada de Fourier (II)
Analoga: Prisma, separa la luz
blanca en sus componentes de
colores dependiendo de su longitud de
onda (frecuencia)
Transformada de Fourier (III)

=
1
0
/ 2
) (
1
) (
M
x
M ux j
e x f
M
u F
t
La transformada discreta de Fourier de una variable:
[x, f(x)]
[dominio del tiempo,
amplitud]
[ u, F(u) ]
[ dominio de la frecuencia,
componente de frecuencia]
Argumentos x y u: [0.. M-1]
Se calcula: Se sustituye primero u=0 y se evala para todas las x,
despus u=1 y se evala todas las x
Transformada de Fourier (IV)
0 1
2
= + x
Un sistema en el cual tenga solucin:
1 = j
Forma
binmica
x
y
x+jy
Eje real
Eje imaginario
Sea la transformada:

=
1
0
/ 2
) (
1
) (
M
x
M ux j
e x f
M
u F
t
Al aplicar la frmula de Euler:
u u
u
sin cos j e
j
=

Sumas de senos y cosenos con


diferente amplitud, frecuencia y fase :

=
=
1
0
)] / 2 ( ) / 2 )[cos( (
1
) (
M
x
M ux jsen M ux x f
M
u F t t
Transformada de Fourier (V)
Representacin de la transformada de Fourier
en coordenadas polares
) (
) ( ) (
u j
e u F u F
o
=
( ) ( )
2 2
) ( u I u R u F + = Amplitud o Espectro
( )
( )
( )

=

u R
u I
u
1
tan o
Espectro de fase
( ) ( )
2 2
2
) ( u I u R u F + =
Espectro de potencia
Transformada de Fourier (VI)
Fs = 1000; % Frecuencia de muestreo: 1KHz
T = 1/Fs; % Perodo de muestreo
L = 1000; % Nmero de unidades
x = (0:L-1)*T; x=x; % Vector de tiempo (x)
K=500; % Amplitud (unos)
a=ones(K,1); b=zeros(L-K,1); fx=[a; b]; plot(x,fx,*)
Grfico de la transformada de Fourier
A=1
L=1000
K=500
[x, f(x)]
Transformada de Fourier (VII)
[ u, |F(u)| ]
Media seccin del espectro de fx
>>abs(fft(fx))
Detalles del
grfico
Transformada de Fourier (VIII)
Reconstruccin de la seal original
[x, f(x)]
[dominio del tiempo,
amplitud]
[ u, F(u) ]
[ dominio de la frecuencia,
componente de frecuencia]

=
=
1
0
/ 2
) (
1
) (
M
u
M ux j
e u F
M
x f
t
Se calcula: Se sustituye primero x=0 y se evala para todas las u,
despus x=1 y se evala todas las u
Argumentos x y u: [0.. M-1]
Transformada de Fourier (IX)
La transformada de Fourier de una funcin
dependiente de dos variables

=
+
=
1
0
1
0
) / / ( 2
) , (
1
) , (
M
x
N
y
N vy M ux j
e y x f
MN
v u F
t
donde: (x = 0,1, ..M-1) e (y = 0,1, ..N-1)
(u = 0,1, ..M-1) y (v = 0,1, ..N-1)

=
+

=
=
1
0
) / / ( 2
1
0
) , (
1
) , (
M
u
N vy M ux j
N
v
e v u F
MN
y x f
t
La cual puede reconstruirse a su valor original
Espacio Frecuencia
Funciones de inters de MATLAB
% Crea figura
f = zeros(30,30);
f(5:24,13:17) = 1;
% Aplica la transformada de Fourier
F = fft2(f,256,256);
% Mueve el origen de la transformada al centro del grfico de
frecuencias
F1 = fftshift(F);
%Visualiza
imshow(log(abs(F1)),[-1 5]); colormap(jet); colorbar
Fuente: Fourier Transform. Matlab

=
+

=
=
1
0
) / / ( 2
1
0
) , ( ) , (
M
x
N vy M ux j
N
y
e y x f v u F
t
Colormap


-1
0
1
2
3
4
5
imshow(F2,[-1 5],'notruesize'); colormap(jet); colorbar
Detalle filas
figure; plot(F2(2,:)); figure; plot(F2(128,:));
0 50 100 150 200 250
-6
-5
-4
-3
-2
-1
0
1
Fila 2
0 50 100 150 200 250
-1
0
1
2
3
4
5
Fila 128


-1
0
1
2
3
4
5
Detalle columnas
figure; plot(F2(:,2)); figure; plot(F2(:,128));


-1
0
1
2
3
4
5
0 50 100 150 200 250
-4
-3
-2
-1
0
1
2
3
Columna 2
0 50 100 150 200 250
-2
-1
0
1
2
3
4
5
Columna 128
Imagen y transformadas


-1
0
1
2
3
4
5


-1
0
1
2
3
4
5
Imagen y transformadas (II)


-1
0
1
2
3
4
5


-1
0
1
2
3
4
5
Filtros en el dominio de la frecuencia
Componente de alta frecuencia en una imagen: Transiciones
bruscas en niveles de gris
Suavizado: Eliminar las componentes de alta frecuencia
Filtro en el dominio de la frecuencia
) , ( ) , ( ) , ( v u F v u H v u G =
donde:
F(u,v): transformada de Fourier de la imagen original
H(u,v): Filtro atenuador de frecuencias
Producto: Se realiza el producto de cada componente de H(u,v)F(u,v).
Cuando F(u,v) es imaginario se multiplica H(u,v) por ambos componentes
Filtro en el dominio de la frecuencia (II)
Imagen
de
entrada
f(x,y)
Transfor-
mada de
Fourier
F(u,v)
Filtro
H(u,v)*
F(u,v)
Transfor-
mada
inversa de
Fourier
Imagen
filtrada
Pasos para filtrar la imagen
Figura original Figura resultante
Transformada de Fourier


2
3
4
5
6
7
8
9
10
11
12
Filtro


-1
0
1
2
3
4
5
Filtro pasobajo ideal
0 0 0 0 0
0 1 1 1 0
0 1 1 1 0
0 1 1 1 0
0 0 0 0 0
Tamao del filtro
(M, N) = (5, 5)
Centro
(u, v)=(3, 3)
] ) 2 / ( ) 2 / [( ) , (
2 2
N v M u v u D + =
Distancia al centro de matriz de frecuencias
-1
-0.5
0
0.5
1
-1
-0.5
0
0.5
1
0
0.2
0.4
0.6
0.8
1

>
s
=
0
0
) , ( 0
) , ( 1
) , (
D v u D si
D v u D si
v u H
) , (
0
v u D D =
Frecuencia de corte
Funcin
Todas las frecuencias que no estn
dentro del crculo son atenuadas
%Representacin en el dominio de la frecuencia
[f1, f2]=freqspace(25, 'meshgrid');
Hd=zeros(25,25); d=sqrt(f1.^2+f2.^2)<.75;
Hd(d)=1;
mesh(f1,f2,Hd);
-1
-0.5
0
0.5
1
-1
-0.5
0
0.5
1
0
0.2
0.4
0.6
0.8
1
-1
-0.5
0
0.5
1
-1
-0.5
0
0.5
1
0
0.2
0.4
0.6
0.8
1
-1
-0.5
0
0.5
1
-1
-0.5
0
0.5
1
0
0.2
0.4
0.6
0.8
1
Filtro pasobajo ideal (II)
Filtros pasobajo
| |
n
D v u D
v u H
2
0
/ ) , ( 1
1
) , (
+
=
Filtro de Butterworth de orden n
Cae al 50% de su mximo en la frecuencia de corte (D(u,v)=D
0
)
donde
Caracterstica
Las transiciones a la frecuencia
de corte D
0
no son bruscas
] ) 2 / ( ) 2 / [( ) , (
2 2
N v M u v u D + =
Cae al 50% de su mximo en la frecuencia de corte (D(u,v)=D
0
)
Filtros pasobajo (II)
Representacin del filtro de Butterworth
lpfilter(tipo, M, N, D
0
, n)
Gonzalez,R.; Woods, R.; Eddins, S.: Digital Image Processing using Matlab. Prentice Hall.2004.
>>H=fftshift(lpfilter('btw', 500, 500, 50, 1))
>>mesh(H(1:10:500, 1:10:500))
n=1
n=2.5 n=10
Filtros pasobajo (III)
Representacin del filtro de Butterworth
lpfilter(tipo, M, N, D
0
, n)
Gonzalez,R.; Woods, R.; Eddins, S.: Digital Image Processing using Matlab. Prentice Hall.2004.
>>H=fftshift(lpfilter('btw', 500, 500, 50, 1))
>>mesh(H(1:10:500, 1:10:500))
D
0
=50 D
0
=100 D
0
=300
Filtros pasobajo (IV)
2
0
2
2 / ) , (
) , (
D v u D
e v u H

=
Filtro pasobajo Gausiano
donde
Caracterstica
Las transiciones a la frecuencia
de corte D
0
no son bruscas
] ) 2 / ( ) 2 / [( ) , (
2 2
N v M u v u D + =
Cae al 60.7% de su mximo valor cuando (D(u,v)=D
0
)
Filtros pasobajo (V)
Representacin del filtro Gausiano
lpfilter(tipo, M, N, D
0
, n)
Gonzalez,R.; Woods, R.; Eddins, S.: Digital Image Processing using Matlab. Prentice Hall.2004.
>>H=fftshift(lpfilter(gaussian', 500, 500, 50))
>>mesh(H(1:10:500, 1:10:500))
D
0
=50 D
0
=100 D
0
=250
El tamao de las matrices
Cuando se aplica un algoritmo de filtrado digital basado
en la transformada de Fourier puede existir interferencia
entre perodos adyacentes si los perodos estn muy
prximos con respecto a la duracin de la parte de la
funcin que adquiere valores diferentes de cero
f(x,y) y h(x,y) tienen el tamao AxB y CxD
El tamao de las funciones resultantes sern PxQ:
1 + > C A P
1 + > D B Q
Los pxeles de la extensin se rellenan con ceros
Filtro en el dominio de la
frecuencia: DIPUM
%Redefine el tamao de las matrices F(u) y H(u)
PQ=paddedsize(size(f)); % f, imagen
% Se obtiene la transformada
F=fft2(f, PQ(1), PQ(2));
% Se define el filtro
H=lpfilter(tipo', PQ(1), PQ(2), D
0
, n);
% Se multiplica la transformada por el filtro
G=H.*F;
% Se obtiene parte real de la Transformada inversa
g=real(ifft2(G));
% Se restituye tamao original de la imagen
g=g(1:size(f,1), 1:size(f,2));
% Se ajustan los niveles de gris
gg=gscale(g);
% Se ecualiza el histograma
g=histeq(gg); % Opcional
Aplicacin del
Filtro de Butterworth
D
0
=0.01*PQ(2); % 1% del ancho de la imagen rellenada
n=1
Aplicacin del
Filtro de Butterworth (II)
D
0
=0.05*PQ(2); % 5% del ancho de la imagen rellenada
n=1
Aplicacin del
Filtro de Butterworth (III)
D
0
=0.1*PQ(2); % 10% del ancho de la imagen rellenada
n=1
Aplicacin del
Filtro de Butterworth (IV)
D
0
=0.05*PQ(2); % 5% del ancho de la imagen rellenada
n=2.5
Aplicacin del
Filtro de Butterworth (V)
D
0
=0.05*PQ(2); % 5% del ancho de la imagen rellenada
n=5
Aplicacin del
Filtro de Butterworth (VI)
D
0
=0.05*PQ(2); n=1 D
0
=0.01*PQ(2); n=1 D
0
=0.1*PQ(2); n=1
D
0
=0.05*PQ(2); n=2.5 D
0
=0.05*PQ(2); n=5
Aplicacin del Filtro Gausiano
D
0
=0.01*PQ(2); % 1% del ancho de la imagen rellenada
Aplicacin del Filtro Gausiano (II)
D
0
=0.05*PQ(2); % 5% del ancho de la imagen rellenada
Aplicacin del Filtro Gausiano (III)
D
0
=0.1*PQ(2); % 10% del ancho de la imagen rellenada
Filtros pasoalto
pb pa
v u H v u H ) , ( 1 ) , ( =
Inversa de los filtros pasobajo
donde:
pa
v u H ) , (
Filtro pasobajo
Filtro pasoalto
pb
v u H ) , (
Los pasos para aplicar el filtro
son los mismos que los pasobajo
hpfilter(tipo, M, N, D
0
, n)
Filtros pasoalto (II)
Ideal
Butterworth
Gausiano
Filtros pasoalto (III)
D
0
=0.009*PQ(2); % .9% del ancho de la imagen rellenada
Filtro Ideal
Filtros pasoalto (IV)
D
0
=0.05*PQ(2); % 5% del ancho de la imagen rellenada
n=1
Filtro de Butterworth
Filtros pasoalto (V)
D
0
=0.05*PQ(2); % 5% del ancho de la imagen rellenada
Filtro Gausiano
Filtros pasoalto enfatizado
pa pa
v u bH a v u H ) , ( ) , ( + =
1+3*hpfilter(gaussian, M, N, D
0
)
a: Incorpora componente de directa (H(0,0) 0)
b: Enfatiza el filtro de alta frecuencia
D
0
=0.05*PQ(2); Filtro Gausiano
Filtros pasoalto enfatizado (II)
Filtro Gausiano enfatizado
pa pa
v u H v u H ) , ( 2 5 . 0 ) , ( + =
Filtros: Diferentes tipos
Promedio
Disco
Laplaciano
Prewitt
Filtros: Diferentes tipos (II)
Movimiento
Laplaciano del filtro Gaussiano
Prewitt

You might also like