miércoles, 13 de febrero de 2013

Generación de ruido sal pimienta

Para esta semana en laboratorio de visión computacional la tarea consistió en generar ruido sal pimienta sobre una imagen y después buscar la manera de como eliminarlo y aplicarlo.

Generación Ruido Sal-Pimienta

Para generar el ruido sal-pimienta lo primero que hice fue pedir un valor que sera tomado como intensidad donde podemos poner el valor que sea lo recomendado es usar valores entre 0 y 1 ya que 1 recorrerá todo el tamaño del ancho x alto de la imagen, esto no significa que habrá ruido en toda la imagen porque no se va insertando pixel por pixel pero si habrá una cantidad muy alta. Después generamos un valor x random que se le sumara al pixel actual que se recorre por lo que se moverá a un pixel random el cual sera el pintado. Para decidir si pintarlo blanco o negro nos basamos en el mismo valor random generado, si el valor generado x es modulo de 2 sera blanco sino sera negro.

Imagen Explicativa:



Imágenes Resultante:


 

                    Original                                              Sal-Pimienta intensidad:0.1

Otro ejemplo:



Imagen Original

 Sal-Pimienta intensidad:1
El código que cree para generar el ruido es el siguiente:



Remover Ruido Sal-Pimienta

La segunda parte de la tarea consiste en remover el ruido generado anteriormente para esto yo decidí hacer 2 cosas, primero que nada decidí recorrer la imagen en búsqueda de un pixel con sal o pimienta es decir blanco o negro, una ves encontrado un pixel que cumpla esta condición lo que hice fue revisar sus vecinos para generar un promedio, para generar el promedio revisamos todos los vecinos alrededor y tomamos en cuenta para el promedio solo los vecinos que no contengan sal y pimienta, es decir que si en el pixel que estamos actualmente su vecino derecho contiene sal y pimienta y los demás no, el promedio sera el valor del pixel izq+pixel abajo+pixel arriba dividido entre 3 y sera el valor que obtenga el pixel actual que contenía anteriormente ruido.

Imagen Explicativa:



Imágenes Resultantes:




          Ruido intensidad: 0.1                                                   Primer removidoRuido Intensidad 1
Primer removido

El código que cree para la eliminación del ruido es el siguiente:



Como se puede ver en las imágenes el ruido no se elimina completamente así que para eliminarlo en su totalidad decidí pasar la imagen resultante del primer removido por el filtro que había hecho anteriormente y me quedo de la siguiente manera:

Segundo Filtro:


          Ruido 0.1                                                       Primer Filtro                             
                                                 Segundo Filtro

Ruido intensidad 1 
Primer Filtro 
 Segundo Filtro
El código que utilice es el siguiente:


Como se puede ver ya con el segundo filtro se elimina prácticamente toda la sal pimienta, el segundo filtro es igual al que ya había utilizado en la clase.

Tiempos:

Primera Imagen:

Segunda Imagen:

El código completo se encuentra en mi repositorio:



Eso seria todo para esta semana :P




1 comentario: