nales II
Fundaci
on Universitaria Los Libertadores
1.
Introducci
on
En este informe se realizara la introduccion a los comandos en MATLAB, para colocar filtros
a las im
agenes, no se har
a con los comando determinados de MATLAB, sino que se crea un
algoritmo para el filtro normalizado y el filtro de mediana. Se evidenciaran los scripts de programaci
on en MATLAB y los pantallazos de los resultados de cada script.
Scripts De MATLAB
A continuaci
on se observara el script en el cual se definen las variables y comandos para las
operaciones que se deben realizar para filtrar la imagen y el analisis correspondiente a algunos
comandos del sistema u operaciones del sistema.
y=zeros(p+n-1,q+n-1);
%Ciclo para recorrer la matriz.
for i=2:p+n-2
for j=2:q+n-2
%Operacion producto punto.
y(i,j)=dot(x(i-1,j-1:j+1),h(1,:))+dot(x(i,j-1:j+1),h(2,:))+dot(x(i+1,j-1:j+1),h(3,:));
%Promedio de la matriz
y(i,j)=(y(i,j))/9;
end
end
%Tranformaci
on double a uint8.
y=uint8(y);
%Salida imagenes en tipo uint8.
figure(Name,Imagen Con Filtro Normalizado,NumberTitle,off,Color,[1 1 1])
imshow(y);
title(Imagen Con Filtro Normalizado)
En este script se hace una lectura de la imagen del sistema cameraman (Figura 1) y a esta imagen se le crea una matriz de normalizado, llamada Kernel, que en nuestro caso es de 3X3, luego
de tener la imagen y la matriz Kernel, revisamos su tama
no (Figura 2). Para empezar a hacer el
filtro, creamos unas matrices de ceros y una matriz de salida y, las cuales si las mostramos en
pantalla, aparecen como una imagen en blanco o negro, esto dependiendo los valores que se le
asignen a la matriz. Con el ciclo for, recorremos la matriz en todas sus posiciones y realizamos
un producto punto, luego de tener este resultado, hacemos la normalizacion de la matriz de
salida dividiendo por el tama
no de nuestra matriz Kernel y al final hacemos la conversion de la
imagen de tipo double a uint8 y mostramos la imagen con el filtro normalizado.
Procesamiento Digital De Se
nales II
Fundaci
on Universitaria Los Libertadores
[p q]=size(xx);
[n m]=size(h);
%Creacion matriz de ceros para la imagen.
x=zeros(p+n-1,q+n-1);
x(2:p+n-2,2:q+n-2)=xx;
%Creacion matriz de ceros para la salida.
y=zeros(p+n-1,q+n-1);
%Ciclo para recorrer la matriz.
for i=2:p+n-2
for j=2:q+n-2
%Creacion vector de la imagen.
u=[x(i-1,j-1) x(i-1,j) x(i-1,j-1) x(i,j-1) x(i,j) x(i,j+1) x(i+1,j-1) x(i+1,j) x(i+1,j+1)];
%Mediana del vector de la imagen.
z=median(u);
y(i,j)=z;
end
end
y=uint8(y);
figure(Name,Imagen Con Filtro Mediana,NumberTitle,off,Color,[1 1 1])
imshow(y);
title(Imagen Con Filtro Mediana)
En este script seguimos el mismo procedimiento de lectura de imagen, matriz Kernel y matrices
de ceros del sistema, la diferencia de este script es que volvemos con el ciclo for la matriz de la
imagen un vector, el cual mediante el comando median,se organizan los datos del vector y se
halla la mediana y esta se ubica en la posicion indicada. As se realiza el filtro de mediana en
una imagen.
An
alisis Del Sistema
En esta secci
on se podr
a evidenciar el resultado del script realizado para el manejo de imagenes,
encontraremos capturas de pantalla de la interfaz de MATLAB y las imagenes con sus respectivos an
alisis. Se utilizo en los dos scripts de MATLAB, la misma imagen original (Figura 1).
Filtro Normalizado
Figura 2. Tama
no de las matrices en el WorkSpace de MATLAB.
En esta figura se puede observar que la imagen que se esta trabajando es de tipo uint8, ya que
el tama
no es de 256x256 pixeles.
Procesamiento Digital De Se
nales II
Fundaci
on Universitaria Los Libertadores
Filtro De Mediana
Procesamiento Digital De Se
nales II
Fundaci
on Universitaria Los Libertadores
Como se est
a recorriendo la matriz por posicion, se tienen diferentes resultados de la mediana
en la matriz final, ya que se toma cada pixel de la imagen y se toma la mediana de los pixeles
de alrededor, por esta razon en el WorkSpace se ven varios valores.