Está en la página 1de 9

ELECTIVA: SISTEMAS DE RECUPERACIÓN DE IMÁGENES BASADA EN CONTENIDO

Docente: Maritza Mera Gaona


Departamento de Sistemas

Practica 3 Primera Parte


Preprocesamiento de imágenes.

OBJETIVO:
Revisar técnicas de preprocesamiento de imágenes para realzar información sobre
objetos/regiones de interés en las imágenes o eliminar ruido de las imágenes usando Matlab.
1. Configuración ambiente: Instalación paquete Image Processing Toolbox
1.1. Validar si el toolbox está instalado
Ejecutar las siguientes instrucciones usando la imagen monedas.png

1. I = imread('monedas.png');
2. I = rgb2gray(I);
3. %función para agregar ruido tipo sal y pimienta
4. J = imnoise(I,'salt & pepper',0.02);
5. figure
6. imshow(J)
ELECTIVA: SISTEMAS DE RECUPERACIÓN DE IMÁGENES BASADA EN CONTENIDO
Docente: Maritza Mera Gaona
Departamento de Sistemas

1.2. Si se obtiene el error indicando que imnoise requiere el paquete Imagen Processeing, click
en Image Processing Toolbox y continuar con la instalación. En caso contrario omita los
pasos 1.2-1.9.

1.3. Click en instalar

1.4. Iniciar sesión/ Continuar


ELECTIVA: SISTEMAS DE RECUPERACIÓN DE IMÁGENES BASADA EN CONTENIDO
Docente: Maritza Mera Gaona
Departamento de Sistemas

1.5. Permitir Acceso

1.6. Click en Siguiente


ELECTIVA: SISTEMAS DE RECUPERACIÓN DE IMÁGENES BASADA EN CONTENIDO
Docente: Maritza Mera Gaona
Departamento de Sistemas

1.7. Aceptar acuerdo de licenciamiento

1.8. Confirmar la instalación: Siguiente.


ELECTIVA: SISTEMAS DE RECUPERACIÓN DE IMÁGENES BASADA EN CONTENIDO
Docente: Maritza Mera Gaona
Departamento de Sistemas

1.9. Instalación terminada. Cerrar.

2. Ruido
Los valores de los pixeles toman valores diferentes a los de sus vecinos de forma aleatoria.

2.1. Ruido Gaussiano – sal pimienta


Los pixeles que componen la imagen cambian su valor de acuerdo con una distribución normal o
gaussiana.
En este tipo de ruido podemos identificar que un pixel que representa ruido no representa
relación alguna con los pixeles vecinos de la imagen.
Al ver la imagen en escala de grises se pueden identificar puntos negros o puntos blancos

Figura 1. Imagen sin ruido Figura 2. Imagen con ruido "Sal y Pimienta"
ELECTIVA: SISTEMAS DE RECUPERACIÓN DE IMÁGENES BASADA EN CONTENIDO
Docente: Maritza Mera Gaona
Departamento de Sistemas

Causas Ruido Sal y Pimienta: manchas de polvo dentro de las ópticas de la camas o defectos en
el dispositivo que realiza la captura.

Solución:
A. Suavizar la imagen: disminuir las variaciones de intensidad entre pixeles del mismo
vecindario aplicando un filtro promediador.
Aplicamos un kernel promediador (todos sus valores 1/9, donde 9 es el número de
elementos del kernel).

En un vecindario de 3x3, calculamos el valor del pixel i,j a partir del producto cartesiano
entre el kernel y el vecindario

B. Eliminación de ruido: manipular los pixeles con niveles de intensidad significativamente


diferentes a sus pixeles vecinos.
Aplicamos un filtro de mediana que eliminé los pixeles que tienen alta variación de
intensidad.

2.1.1. Solución Básica

1. I = imread('monedas.png');
2. %convertir la imagen a escala de grises
3. I = rgb2gray(I);

4. %usar la función imnoise para generar artificialmente ruido en la imagen


5. J = imnoise(I,'salt & pepper',0.02);
6. JJ = imnoise(I,'salt & pepper',0.02);
7. figure
8. imshow(J)

9. %crear un kernel promediador


10. f = [ 0.111111111111111111111 0.111111111111111111111 0.111111111111111111111
11. 0.111111111111111111111 0.111111111111111111111 0.111111111111111111111
12. 0.111111111111111111111 0.111111111111111111111 0.111111111111111111111];

13. %consultar dimensiones de la imagen


14. [M,N] = size (I);
15. %aplicar el filtro de promediar los valores de los pixeles en el vecindario
16. for i = 2:M-1
for j = 2:N-1
im = J(i-1:i+1,j-1:j+1);
a= 0;
for z = 1:3
ELECTIVA: SISTEMAS DE RECUPERACIÓN DE IMÁGENES BASADA EN CONTENIDO
Docente: Maritza Mera Gaona
Departamento de Sistemas

for y = 1: 3
a = f (z,y)*im(z,y)+a;
end
end
J (i,j) = a;
end
17. end

18. figure
19. imshow(J)

20. imshowpair(J,JJ,'montage');

2.1.2. Solución básica con funcionalidades de Matlab


El proceso anterior puede ser implementado utilizando funciones preconstruidas de matlab.

1. I = imread('monedas.png');
2. %convertir la imagen a escala de grises
3. I = rgb2gray(I);
4. J = imnoise(I,'salt & pepper',0.02);
5. JJ = imnoise(I,'salt & pepper',0.02);
6. figure
7. imshow(JJ)
8. %aplicar el filtro de promediar los valores de los pixeles en el vecindario
9. J = filter2(fspecial('average',3),J)/255;
10. figure
11. imshowpair(JJ,J,'montage')
ELECTIVA: SISTEMAS DE RECUPERACIÓN DE IMÁGENES BASADA EN CONTENIDO
Docente: Maritza Mera Gaona
Departamento de Sistemas

2.1.3. Filtro de mediana

Medfilt2(I) realiza un filtrado de mediana de la imagen I en dos dimensiones. Cada píxel de salida
contiene el valor de la mediana de un entorno de 3 por 3 alrededor del píxel correspondiente de
la imagen de entrada.
La implementación básica es que se visita cada píxel de la imagen y se reemplaza por la mediana
de los píxeles vecinos.

1. I = imread('monedas.png');
2. %convertir la imagen a escala de grises
3. I = rgb2gray(I);
4. J = imnoise(I,'salt & pepper',0.02);
5. JJ = imnoise(I,'salt & pepper',0.02);
6. figure
7. imshow(JJ)

8. %aplicar el filtro de mediana para tratar con los pixeles con


9. J = medfilt2(J);
10. imshowpair(JJ,J,'montage');

El resultado de esta operación muestra que el filtro de mediana hace mejor su trabajo para este
tipo de ruido en este tipo de imágenes.
ELECTIVA: SISTEMAS DE RECUPERACIÓN DE IMÁGENES BASADA EN CONTENIDO
Docente: Maritza Mera Gaona
Departamento de Sistemas

Figura 3. resultado Filtro de Mediana.

21. Revise la documentación de la función imnoise.


J = imnoise(I,'gaussian')
J = imnoise(I,'gaussian',m)
J = imnoise(I,'gaussian',m,var_gauss)
J = imnoise(I,'localvar',var_local)
J = imnoise(I,'localvar',intensity_map,var_local)
J = imnoise(I,'poisson')
J = imnoise(I,'salt & pepper')
J = imnoise(I,'salt & pepper',d)
J = imnoise(I,'speckle')
J = imnoise(I,'speckle',var_speckle)

22. Práctica:
a. Aplíquele a la imagen de Lena cada uno de los tipos de ruidos que genera la función
imnoise.

b. Realice su propia implementación del filtro de mediana en matlab.


Entregue todo en un solo archivo (informe de la
práctica, segmentos de código utilizados,
pantallazos,etc.).

También podría gustarte