Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Facultad de Ingeniería
Departamento de Ingeniería Eléctrica DIE
Tarea Nº 2
Filtrado de Imágenes
Procesamiento Digital de Imágenes
[547501-0]
I-2008
DESARROLLO TAREA 2
II.Redúzcala a una imagen de 512 x 512 píxeles en 256 niveles de gris, por el
método
(software) que considere más adecuado.
Entregar:
Un informe escrito con la información solicitada, incluyendo las imágenes en
niveles de Gris. Entregar además, copia del informe en formato PDF en un CD
anexo al informe escrito
Tarea 2 - Desarrollo Procesamiento Digital de Imágenes
I. Selecciones, según su propio criterio una imagen que contenga frecuencias espaciales
altas, medias y bajas.
Filtrado Espacial
El filtrado espacial es la operación que se aplica a una imagen para resaltar o
atenuar detalles espaciales con el fin de mejorar la interpretación visual o
facilitar un procesamiento posterior, y constituye una de las técnicas
comprendidas dentro del realce de imágenes.
Ejemplos comunes incluyen aplicar filtros para mejorar los detalles de bordes
en imágenes, o para reducir o eliminar patrones de ruido. El filtrado espacial es
una operación "local" en procesamiento de imagen, en el sentido de que
modifica el valor de cada píxel de acuerdo con los valores de los píxeles que lo
rodean; se trata de transformar los niveles de gris originales de tal forma que se
parezcan o diferencien más de los correspondientes a los píxeles cercanos.
Frecuencia Espacial
Filtros pasa bajos: enfatizan las bajas frecuencias, suavizando las imágenes y
atenuando ruidos. Se trata de asemejar el nivel de gris de cada píxel al nivel de
gris de los píxeles vecinos, reduciendo la variabilidad espacial de la imagen.
Ello produce un borroneado de los bordes, perdiéndose en nitidez visual de la
imagen, pero ganando en homogeneidad.
Filtros pasa altos: enfatizan las altas frecuencias, para mejorar o afilar las
características lineales como los límites en general. Realizan por tanto el efecto
contrario a los filtros pasabajos, eliminando las bajas frecuencias.
Filtro detectores de bordes: realizan otro tipo de operaciones con los píxeles,
pero siempre con el resultado de enfatizar los bordes que rodean a un objeto
en una imagen, para hacerlo más fácil de analizar. Estos filtros típicamente
crean una imagen con fondo gris y líneas blancas y negras rodeando los
bordes de los objetos y características de la imagen.
Luego para saber si una imagen tiene una frecuencia espacial óptima para el
tipo el ejercicio a realizar de debe obtener el modulo de la transformada de
fourier, en el que se puede apreciar los distintos niveles de frecuencia de una
imagen, siendo este mayor al tener un número de puntos (los que representan
magnitudes de frecuencias) mas dispersos, además se puede decir que
mientras las frecuencias mas altas se encuentran en los bordes del módulo y
mientras mas se acerca al centro de la gráfica significa que son frecuencias
Tarea 2 - Desarrollo Procesamiento Digital de Imágenes
mas bajas, luego para encontrar una imagen que contenga frecuencias
espaciales altas, medias y altas debe haber un número de puntos lo mas
disperso posible en la grafica.
Figura 1: Imágenes 1, 2, 3 y 4
Todas las imágenes usadas son de 512 x 512 píxeles, luego no se utilizó
ningún tipo de reducción o en su defecto ampliación, pero para llevar a cabo
esto solo de debe utilizar el siguiente script:
ahora la imagen a una de 512x512 píxeles tal como se muestra en el código. Para mayor
información ver ayuda de Matlab.
Figura 3: Dos máscaras de 3x3 para realizar un filtrado pasabajos (suavizado, promediado)
Generalmente estos filtros se les utiliza para atenuar los detalles irrelevantes
en una imagen. Otra de las utilidades del filtro pasabajos, aparte de las más
obvia que es la atenuación del ruido, es el suavizado de los falsos contornos
producidos por una cuantización con un número insuficiente de niveles de gris.
En la figura 4 puede verse los efectos que produce el filtro de mediana en una
imagen contaminada con ruido sal y pimienta, este ruido es que se ocupa en el
programa presentado y el cual se desea eliminar de la mejor manera.
Tarea 2 - Desarrollo Procesamiento Digital de Imágenes
Figura 6: Imagen original, Imagen mas ruido sal y pimienta, Filtros de mediana (3x3), (5x5),
(7x7), (10x10)
Figura 7: Módulos Transformada de Fourier (MTF) Imagen original, Imagen mas ruido, Imagen
filtrada 1, 2, 3 y 4 veces.
El Filtro Sobel y el Filtro Prewitt son filtros que trabajan con el operador gradiente, la
idea general es que dentro de una vecindad de píxeles se encuentre la mayor pendiente,
luego esa será la mayor diferencia, de esta manera se detectan los bordes, este utiliza
dos mascaras o filtros los cuales uno detecta los bordes verticales y el otro los
horizontales, para obtener los bordes completos se realiza la suma de las imágenes que
nos resultaron con los bordes verticales y horizontales. Otro filtro para la detección de
bordes es Prewitt, el cual consta de 8 matrices, que se aplican píxel a píxel en la imagen
y luego se suman las imágenes para obtener los bordes bien marcados. El filtro de
Prewitt, marca muy bien los bordes, ya que sus matrices atacan estos de seis lados
diferentes, en general cada matriz toma el nombre de un punto cardinal: Norte, Sur,
Este, Oeste, Noroeste, Noreste, Suroeste, Sureste. Las respectivas matrices son:
−1 −1 1 −1 −1 −1 1 −1 −1
E = −1 −2 1 N = 1 −2 1 NE = 1 −2 −1
1 1 1 1 1 1 1 1 1
1 1 −1 1 1 −1
O = 1 −2 −1 E = 1 −2 −1
1 1 −1 1 1 −1
1 1 1 1 1 1 1 1 1
E = −1 −2 1 S = 1 −2 1 NE = 1 −2 −1
−1 −1 1 −1 −1 −1 1 −1 −1
Figura 8: Matrices de Prewitt
Para este caso se utiliza la detección de bordes no con las matrices vistas en la
Figura 8, sino que con las siguientes matrices.
−1 −1 −1 1 0 −1
fprewitt − h = 0 0 0 ⋅ fprewitt − v = 1 0 −1 ⋅
1 1
3 3
1 1 1 1 0 −1
Figura 9: Matrices de Prewitt utilizadas en el filtro programado
dh = A * fprewitt − h ∨ A * fsobel − h
dv = A * fprewitt − v ∨ A * fsobel − v
dh 2 + dv 2
d prewiett ∨ sobel =
2
−1 −2 −1 1 0 −1
fsolve − h = 0 0 0 ⋅ fsolve − v = 2 0 −2 ⋅
1 1
4 4
1 2 1 1 0 −1
Figura 9: Matrices de Sobel horizontal y vertical
ANEXO
Pregunta I
Pregunta II
clear all;close all;
P=imread('image1.jpg');
P=rgb2gray(P);
figure(6);
P2 = imresize(P, [512 512]); %B = imresize(A, [mrows ncols])
imshow(P2);
Pregunta III
% filtros promediadores
clear all; close all;pack
g256=[0:255]'*[1 1 1]/255;
a=imread('bebe2.jpg');
a=rgb2gray(a);
a= imresize(a, [512 512]);%reduccion de imagen a 512x512
%%%%% Imagen Original
figure(1);subplot(2,2,1);image(a);colormap(g256);axis image;
title('original');
%%%%% Filtro 1
f1=ones(3,3)/9; %0.11
b=conv2(a,f1,'same');
figure(1);subplot(2,2,2);image(b);colormap(g256);axis image;
title('Filtro Nº 1');
%%%%% Filtro 2
f2=ones(9,9)/81; %0.01234
c=conv2(b,f2,'same');
figure(1);subplot(2,2,3);image(c);colormap(g256);axis image;
title('Filtro Nº 2');
%%%%% Filtro 3
f3=ones(9,9)/81; %0.00694
d=b;
for i=1:5
d=conv2(d,f3,'same');
end
figure(1);subplot(2,2,4);image(d);colormap(g256);axis image;
title('Filtro Nº 3');
Pregunta IV
figure(1);subplot(3,2,1);image(a);colormap(g256);axis image;
title('original');
figure(1);subplot(3,2,2);image(b);colormap(g256);axis image;
title('Imagen mas ruido');
c=medfilt2(b,[3,3]);
figure(1);subplot(3,2,3);image(c);colormap(g256);axis image;
title('Filtro Mediana (3 x 3)');
d=medfilt2(c,[5,5]);
figure(1);subplot(3,2,4);image(d);colormap(g256);axis image;
title('Filtro Mediana (5 x 5)');
e=medfilt2(d,[7,7]);
figure(1);subplot(3,2,5);image(e);colormap(g256);axis image;
title('Filtro Mediana (7 x 7)');
f=medfilt2(e,[10,10]);
figure(1);subplot(3,2,6);image(f);colormap(g256);axis image;
title('Filtro Mediana (10 x 10)');
af=fft2(a);
figure(2);subplot(3,2,1);imagesc(log10(1+abs(af)));colormap(jet);axis image;title('MTF Imagen
Original');
bf=fft2(b);
figure(2);subplot(3,2,2);imagesc(log10(1+abs(bf)));colormap(jet);axis image;title('MTF Imagen +
Ruido');
cf=fft2(c);
figure(2);subplot(3,2,3);imagesc(log10(1+abs(cf)));colormap(jet);axis image;title('MTF Imagen Filtrada 1
vez');
df=fft2(d);
figure(2);subplot(3,2,4);imagesc(log10(1+abs(df)));colormap(jet);axis image;title('MTF Imagen Filtrada
2 vez');
ef=fft2(e);
figure(2);subplot(3,2,5);imagesc(log10(1+abs(ef)));colormap(jet);axis image;title('MTF a Imagen Filtrada
3 vez');
ff=fft2(f);
figure(2);subplot(3,2,6);imagesc(log10(1+abs(ff)));colormap(jet);axis image;title('MTF a Imagen Filtrada
4 vez');
Tarea 2 - Anexo Procesamiento Digital de Imágenes
Pregunta V