Top Banner
Tratamiento de imágenes en el dominio de la frecuencia
31

Imagen Filtrado Frecuencial

Jul 13, 2015

Download

Technology

Omar Sánchez
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Imagen Filtrado Frecuencial

Tratamiento de imágenes en el dominio de la

frecuencia

Page 2: Imagen Filtrado Frecuencial

Transformada de Fourier

Transformada: Representación alternativa de una imagen

Transformada de Fourier: Cualquier señal periódica puede representarse por una suma de señales basadas en senos y cosenos con diferente amplitud, frecuencia y fase

Page 3: Imagen Filtrado Frecuencial

Transformada de Fourier (II)

Page 4: Imagen Filtrado Frecuencial

Transformada de Fourier (III)

1

0

/2)(1

)(M

x

MuxjexfM

uF

La transformada discreta de Fourier:

[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 evalúa para todas las x, después u=1 y se evalúa todas las x …

Page 5: Imagen Filtrado Frecuencial

Transformada de Fourier (IV)

012 xUn sistema en el cual tenga solución: 1j

Forma binómica

x

y

x+jy

Eje real

Eje imaginario Sea la transformada:

1

0

/2)(1

)(M

x

MuxjexfM

uF

Al aplicar la fórmula de Euler:

sincos je j

Sumas de senos y cosenos con diferente amplitud, frecuencia y fase :

1

0

)]/2()/2)[cos((1

)(M

x

MuxjsenMuxxfM

uF

Page 6: Imagen Filtrado Frecuencial

Transformada de Fourier (V)

1

0

)]/2sin()/2)[cos((1

)(M

x

MuxjMuxxfM

uF

Fs = 1000; % Frecuencia de muestreo: 1KHzT = 1/Fs; % Período de muestreoL = 1000; % Número de unidadesx = (0:L-1)*T; % Vector de tiempo (x)

Interpretación de la entrada (x)

Interpretación de la salida (F(u))

>> a=1+i*1 1.0000 + 1.0000i>> abs(a) 1.4142>> sqrt(2)

Valor absoluto del número imaginario(forma polar)

Page 7: Imagen Filtrado Frecuencial

Transformada de Fourier (VI)

0 20 40 60 80 100 120 140 160 180 2000

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

0 5 10 15 20 25 30 35 40 45 500

10

20

30

40

50

60

70

80

90

100

[x, f(x)] [ u, F(u) ]

>>log(abs(fft(escalón)))

Espectro de FourierReduce la magnitud

de salida

Page 8: Imagen Filtrado Frecuencial

Transformada de Fourier (VII)La transformada de Fourier de una función

dependiente de dos variables

1

0

)//(21

0

),(),(M

x

NvyMuxjN

y

eyxfvuF

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

)//(21

0

),(1

),(M

u

NvyMuxjN

v

evuFMN

yxf

La cual puede reconstruirse a su valor original

Espacio Frecuencia

Page 9: Imagen Filtrado Frecuencial

Funciones de interés de MATLAB

% Crea figuraf = zeros(30,30);f(5:24,13:17) = 1;% Aplica la transformada de FourierF = fft2(f,256,256);

% Mueve el origen de la transformada al centro del gráfico de frecuencias

F1 = fftshift(F);

%Visualiza imshow(log(abs(F1)),[-1 5]); colormap(jet); colorbar

Fuente: Fourier Transform. Matlab

1

0

)//(21

0

),(),(M

x

NvyMuxjN

y

eyxfvuF

Page 10: Imagen Filtrado Frecuencial

Colormap

-1

0

1

2

3

4

5

imshow(F2,[-1 5],'notruesize'); colormap(jet); colorbar

Page 11: Imagen Filtrado Frecuencial

Detalle filas

figure; plot(F2(2,:)); figure; plot(F2(128,:));

0 50 100 150 200 250-6

-5

-4

-3

-2

-1

0

1Fila 2

0 50 100 150 200 250-1

0

1

2

3

4

5Fila 128

-1

0

1

2

3

4

5

Page 12: Imagen Filtrado Frecuencial

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

3Columna 2

0 50 100 150 200 250-2

-1

0

1

2

3

4

5Columna 128

Page 13: Imagen Filtrado Frecuencial

Imagen y transformadas

-1

0

1

2

3

4

5

-1

0

1

2

3

4

5

Page 14: Imagen Filtrado Frecuencial

Imagen y transformadas (II)

-1

0

1

2

3

4

5

-1

0

1

2

3

4

5

Page 15: Imagen Filtrado Frecuencial

Filtro 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

),(),(),( vuFvuHvuG

donde: F(u,v): transformada de Fourier de la imagen original H(u,v): Filtro atenuador de frecuencias

Page 16: Imagen Filtrado Frecuencial

Filtro en el dominio de la frecuencia (II)

Imagen de

entradaf(x,y)

Transfor-mada de FourierF(u,v)

FiltroH(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

Page 17: Imagen Filtrado Frecuencial

Filtros: Cuadrado

-1

-0.50

0.5

1

-1

-0.5

0

0.5

10

0.2

0.4

0.6

0.8

1

1.2 D(u,v)

D0

(u,v)

0

0

),(0

),(1),(

DvuDsi

DvuDsivuH

Para una matriz MxN:Centro = (u, v) = (M/2, N/2)

0 0 0 0 0 0 0

0 1 1 1 1 1 0

0 1 1 1 1 1 0

0 1 1 1 1 1 0

0 1 1 1 1 1 0

0 1 1 1 1 1 0

0 0 0 0 0 0 0D0 = 3

Page 18: Imagen Filtrado Frecuencial

Filtros: Circular

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

Supóngase la siguiente matriz(M, N) = (5, 5)

Centro(u, v)=(3, 3)

])2/()2/[(),( 22 NvMuvuD

Distancia al centro de matriz de frecuencias

-1

-0.50

0.5

1

-1

-0.5

0

0.5

10

0.2

0.4

0.6

0.8

1

Page 19: Imagen Filtrado Frecuencial

Representación del Filtro en el dominio de la frecuencia

%Representación dominio 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.50

0.5

1

-1

-0.5

0

0.5

10

0.2

0.4

0.6

0.8

1

-1

-0.50

0.5

1

-1

-0.5

0

0.5

10

0.2

0.4

0.6

0.8

1

-1

-0.50

0.5

1

-1

-0.5

0

0.5

10

0.2

0.4

0.6

0.8

1

Page 20: Imagen Filtrado Frecuencial

Filtros: Algunas expresiones

nDvuDvuH

20/),(1

1),(

Filtro de Butterworth de orden n: Cae al 50% de su máximo valor cuando D(u,v)=D0)

20

2 2/),(),( DvuDevuH

Filtro pasobajo Gaussiano: Cae al 60.7% de su máximo valor cuando D(u,v)=D0)

-1

-0.50

0.5

1

-1

-0.5

0

0.5

10

0.2

0.4

0.6

0.8

1

Fx

Fy

Magnitude

Page 21: Imagen Filtrado Frecuencial

Filtros: Diferentes tiposPromedio Disco

Laplaciano Prewitt

Page 22: Imagen Filtrado Frecuencial

Filtro PromedioFigura original Promedio

Page 23: Imagen Filtrado Frecuencial

Filtro GaussianoFigura original Gaussiano

Page 24: Imagen Filtrado Frecuencial

Filtros: Diferentes tipos (II)

Movimiento Laplaciano del filtro Gaussiano

Prewitt

Page 25: Imagen Filtrado Frecuencial

Filtro MovimientoFigura original Movimiento

Page 26: Imagen Filtrado Frecuencial

Transiciones horizontales y verticales

Premia transiciones verticales "prewitt" Premia transiciones horizontales "prewitt"

Page 27: Imagen Filtrado Frecuencial

El tamaño de las matrices

Cuando se aplica un algoritmo de filtrado digital basado en la transformada de Fourier puede existir interferencia

entre períodos adyacentes si los períodos están muy próximos con respecto a la duración de la parte de la

función que adquiere valores diferentes de cero

f(x,y) y h(x,y) tienen el tamaño AxB y CxD

El tamaño de las funciones resultantes serán PxQ:

1 CAP 1 DBQLos píxeles de la extensión se rellenan con ceros

Page 28: Imagen Filtrado Frecuencial

Filtro en el dominio de la frecuencia: Matlab

%Recalcula la magnitud que tendrá F y H %(llenará ceros)PQ=paddedsize(size(f)); % DIPUM

% Se obtiene la transformadaF=fft2(f, PQ(1), PQ(2));

% Se define el filtroh=fspecial('gaussian', 100);

% Se filtra y se calcula la Transformada inversag=real(ifft2(H1.*F1));

Page 29: Imagen Filtrado Frecuencial

Filtro en el dominio de la frecuencia: Matlab (II)

Figura originalTransformada de Fourier

2

3

4

5

6

7

8

9

10

11

12

Filtro

-1

0

1

2

3

4

5

Imagen resultante

Page 30: Imagen Filtrado Frecuencial

Filtro en el dominio de la frecuencia

Filtros pasobajo: “suavizan” las transiciones de grises filtros pasoaltos: Enfatizan las transiciones de grises

Figura original Disco Laplaciano de filtro gausiano

Page 31: Imagen Filtrado Frecuencial

Filtro en el dominio de la Frecuencia Vs Espacio

%Recalcula la magnitud que tendrá F y H (llenará ceros)PQ=paddedsize(size(f));% Se obtiene la transformadaF=fft2(f, PQ(1), PQ(2));% Se define el filtroh=fspecial('gaussian', 100);% Se filtra y se calcula la Transformada inversag=real(ifft2(H1.*F1));

Frecuencia

Espacio

h=fspecial('gaussian', 100);gs=imfilter(f, h);