Está en la página 1de 7

Aplicación de filtros a una

imagen en Fourier
INFORME 2 PARA IIE1100 INTRODUCCIÓN A LA INGENIERÍA ELÉCTRICA
JOCTAN CLAVO IRIBARREN
Procedimiento

Parte 1:
Para esta parte se leyó la imagen deseada a filtrar, luego convirtió se
cambió a una imagen en escala de grises para ser editada. Luego se obtuvo la
transformada de Fourier y se aplicó el cambio de coordenadas para trabajar
digitalmente.
Se creó luego una matriz tipo ‘rect’ para eliminar las frecuencias altas,
la cual cuenta con ceros en zonas lejanas al centro y unos en zonas cercanas
a este, formando un radio de filtro. Esta se multiplicó por la imagen en el
dominio de las frecuencias, eliminando las frecuencias altas y dejando las
bajas.
Finalmente volvemos al dominio original de la imagen aplicando la
transformada de Fourier inversa y tomando su valor absoluto ya que pueden
quedar resultados negativos que afecten la imagen, obteniendo los siguientes
resultados a un radio de corte de 25 (img 1) y otro de 10 (img 2)

(img 1)
(img 2)

En ambas imágenes se muestra a la izquierda la imagen original (en


escala de grises) y a la derecha la imagen filtrada con el pasabajos. Como se
puede apreciar a mayor radio del filtro más similar es a la imagen original,
mientras que a menor radio de filtro más difusa es la imagen filtrando más
frecuencias altas y dejando las más bajas.

Parte 2:
En esta última parte se utilizó la misma imagen y la misma conversión
a escala de grises, además de utilizar la misma matriz de la parte uno*. Se
procuró de ocupar la imagen no transformada y preparar una matriz de radio
‘r’ como filtro, para así no estorbar el trabajo de filtro de la parte uno.
Se convolucionó directamente la imagen original (en escala de grises)
con la matriz de filtro lo cuál nos entregó estos resultados con radio ‘r’ igual a
5 (img 3) y 10 (img 4)

(*) Se utilizó el mismo código para la presentación fina, pero para la preparación se trabajó en un
espacio y script totalmente separado del de la parte uno.
(img 3)

(img 4)

Como se puede apreciar, a mayor radio de filtro mayor difusión se ve


en la imagen filtrada y a una menor escala de ‘r’ de lo que era el radio ‘k’.
Análisis de resultados

Al aplicar el filtro, multiplicando en el dominio de la frecuencia la


matriz con la imagen, se puede eliminar los valores de alta frecuencia de la
imagen (parte uno), lo que nos sugiere que a mayor radio de ‘pase’ del filtro,
menos elementos de mayor frecuencia quedarán fuera, lo que entrega una
imagen cada vez más parecida a la original, caso contrario si se disminuye
este radio. Por otro lado, en la parte dos, al trabajar con el comando de
convolución, el ‘rect’ creado no será el mismo aplicado para el filtro ya que
será su transformada de Fourier la que actúe multiplicando en el dominio de
la frecuencia a la imagen, lo que nos entrega una imagen mucho mejor
filtrada, pero que a mayor radio de filtro más difunde la imagen y con
valores mucho menores a los anteriores se logra una clara filtración.
Luego de probar una y otra vez la combinación en la cuál ambos
filtrados se parezcan, se llegó al resultado de un radio de valor 22 para el
filtro utilizando la transformada de Fourier (parte uno) y un radio 5 para el
filtro de la matriz de convolución (parte 2). La imagen siguiente (img 5)
muestra esta comparación, siendo la imagen de la izquierda la creada a
partir de la parte uno y la de la derecha por convolución.

(img 5)
Anexo (código creado)
clear all

%% Lectura y muestra de imagen original %%

Io = imread('football.jpg');

Ig = rgb2gray(Io);

Im = double(Ig);

%figure(1);

%imshow(Ig,[])

%% Transformada de Fourier %%

Igf = fft2(Ig);

Igfs = fftshift(Igf);

%% Creación del 'rect' en 2 dimensiones con radio 'k' %%

[x,y] = size(Ig);

xs = (-x/2:x/2-1).';

ys = (-y/2:y/2-1);

X = repmat(xs,[1,y]);

Y = repmat(ys,[x,1]);

k = 22 % modifica el radio de corte - máx 100

r = 5

rect2 = (X.^2+Y.^2)<k^2;

F = (X.^2+Y.^2)<r^2;

%% Multiplicación de la imagen transformada por el 'rect' y su transformada


inversa %%

m = rect2.*Igfs;

final = abs(ifft2(m));
%% Convolución de la imagen con la matriz de corte %%

Fi = conv2(Im,F,'same');

%% Muestra de las imagenes filtradas y original%%

figure(1);

imshow(Ig,[])

figure(2);

imshow(final,[])

figure(3);

imshow(Fi,[])

También podría gustarte