Se utilizaron difer<strong>en</strong>tes tipos <strong>de</strong> filtros <strong>de</strong>scritos <strong>en</strong> el capítulo 4 como son: el filtro promedio, mediana, mínimo, máximo y punto medio; pero el filtro con el que se obtuvieron mejores resultados para nuestro <strong>proyecto</strong> fue el filtro promedio ya que a<strong>de</strong>más <strong>de</strong> eliminar un poco el ruido, realiza un suavizado <strong>de</strong> la imag<strong>en</strong>, como se muestra <strong>en</strong> la figura 10.2.2. Figura 10.2.2: Uso <strong>de</strong> filtros para una imag<strong>en</strong> con ruido aleatorio. 88
La realización <strong>de</strong>l programa #3 se implem<strong>en</strong>tó con máscaras <strong>de</strong> 3x3 (ver capítulo 4). Se com<strong>en</strong>zó con la segunda fila y segunda columna <strong>de</strong> la imag<strong>en</strong> para terminar con la p<strong>en</strong>última fila y p<strong>en</strong>última columna <strong>de</strong> la misma imag<strong>en</strong>; pero la imag<strong>en</strong> resultante para cada filtro ti<strong>en</strong>e dos columnas y dos filas m<strong>en</strong>os que la original. clear all; close all; im_color=imread('sacapuntas1.bmp'); im_color = imadjust(im_color,stretchlim(im_color)); rojo=double(im_color(:,:,1)); ver<strong>de</strong>=double(im_color(:,:,2)); azul=double(im_color(:,:,3)); im_gris=round(rojo(:,:)*0.33)+round(ver<strong>de</strong>(:,:)*0.59)+round(azul(:,:)*0.11); im=double(im_gris); ruido_aleatorio=floor(rand(fil,col)*100); im_ruido=im+ruido_aleatorio; im=im_ruido; [fil col]=size(im); for x=2:1:fil-1 for y=2:1:col-1 a=im(x-1,y-1);b=im(x,y-1);c=im(x+1,y-1);d=im(x-1,y);e=im(x,y);f=im(x+1,y); g=im(x-1,y+1);h=im(x,y+1);i=im(x+1,y+1); im_fil_prom(x,y)=round((a+b+c+d+e+f+g+h+i)/9); vector(1:9)=sort([a b c d e f g h i]); im_fil_mediana(x,y)=round(sum(vector)/9); im_fil_minimo(x,y)=vector(1); im_fil_maximo(x,y)=vector(9); im_fil_punto_m(x,y)=round((vector(1)+vector(9))/2); <strong>en</strong>d <strong>en</strong>d figure hold on subplot(2,3,1); imshow(uint8(im_ruido));title('Imag<strong>en</strong> con ruido aleatorio'); subplot(2,3,2); imshow(uint8(im_fil_prom));title('Filtro promedio'); subplot(2,3,3); imshow(uint8(im_fil_mediana));title('Filtro mediana'); subplot(2,3,4); imshow(uint8(im_fil_minimo));title('Filtro minimo'); subplot(2,3,5); imshow(uint8(im_fil_maximo));title('Filtro maximo'); subplot(2,3,6); imshow(uint8(im_fil_punto_m));title('Filtro punto medio'); Programa #3: Filtros para imág<strong>en</strong>es <strong>en</strong> tonos <strong>de</strong> gris. 89