jueves, 14 de febrero de 2013

[VISIÓN COMPUTACIONAL] Lab 2: Reducción de "sal y pimienta" y normalización.

Para esta entrega de laboratorio, se encargó realizar "sal y pimienta", que consiste en pintar aleatoriamente pixeles en rangos de blanco y negro. Después de eso, trataríamos de restaurar la imagen eliminando tales pixeles con alguna lógica.

En esta ocasión utilizaré una imagen con fondo blanco, para ver como reacciona el efecto sobre el fondo, una imagen con muchos colores, y también utilizaré una imagen con algo de oscuridad.

Las imagen es son:



Empezaremos con la primera, le apliqué 1% de proporción de la imagen, un 50% de probabilidad de sal y el resto de pimienta:
Antes

Sal y pimienta

Después

Ahora probaré la misma con una cantidad mayor y luego pasaré a probar las otras dos imágenes, esta vez probaré con el 10% de la proporción de la imagen y misma probabilidad de sal y pimienta:
Antes

Sal y pimienta

Despues

La imagen de resultado muestra que quedan pequeños remanentes de pixeles que se "salvaron", algunos pixeles blancos se ven sobre la naranja, y sobretodo se ven pixeles oscuros en el fondo. Quizá unas cuantas iteraciones quitando sal y pimienta podrían reparar la imagen antes de hacerla borrosa.

Ahora probaré las ultimas imágenes para ver el efecto sobre muchos colores y sobre oscuridad. Usaré una proporción del 1% para tratar de rescatar la imagen con las mismas probabilidades de sal y pimienta:
Antes

Sal y pimienta

Despues

La imagen final con respecto a la primera perdió mucho brillo, pero creo que es por la forma de recodificarla de nuevo, ya que inclusive en la imagen de sal y pimienta ya se ve una perdida de brillo a pesar de que solo agregé pixeles en blanco y negro, así que no lo tomaré en cuenta.

En cuanto a la sal y pimienta, se puede ver como en los bordes negros entre las tablas se pintan pixeles en la imagen final, muy distintos de la inicial.

Ahora utilizaré la imagen oscura:
Antes

Sal y pimienta

Despues

Ignorando lo antes mencionado sobre el brillo, se ve que en la imagen final quedaron muchos pixeles blancos en areas oscuras, y en areas claras los pixeles negros desaparecieron, sin embargo se ve que hubo un pequeño difuminado sobre los remanentes, quizá el promedio de los vecinos no fue suficiente, ya que al analizar un poco, un pixel bueno que se encuentra al lado de uno modificado, tendra un promedio de vecinos muy distinto, y probablemente se modifique, dando el efecto de nevado por la tarde.

Código:

Ahora hablaré sobre la normalización, que consiste en encontrar los bordes de una imagen, aplicando filtros.

Para eso yo difuminé la imagen una vez, le apliqué el proceso de normalización, le apliqué binarización, la volví a difuminar y volví a binarizar.

La imagen de las naranjas quedó así:


No quedó perfecta del todo, quizá sus bordes se difuminan a un grado de que se combinan con el color del fondo, ahora lo aplicaré a otra imagen con contornos más oscuros. La imagen es de unas letras:

Y el resultado es:

El efecto se ve mejor sobre letras como lo había mencionado en el post de convolución, ya que sus contornos se definen mejor tipicamente.

Código:
Liga al proyecto:
https://github.com/victoralex911/vision-computacional

1 comentario: