miércoles, 6 de febrero de 2013

Escala de grises y Umbral

Laboratorio Visión Computacional tarea #1

La tarea 1 para el laboratorio consistió en crear un programa en el que se pueda cargar una imagen y se le aplique escala de grises y umbrales, para despues despegarla en una ventana.

La imagen que usare es la de la Noche estrellada:


Escalada de grises

Para la conversión de la escala de grises se hizo lo siguiente:

1. Se carga la imagen que queremos usar en este caso la de la noche estrellada.
2. Se recorre la imagen pixel por pixel utilizando dos FOR.
3. Al recorrer la imagen se obtienen los valores de r g b que utilizamos para sacar un promedio dividiéndolo entre 3.
4. El valor del promedio obtenido es el que se le asigna a cada pixel.

El código para generar la escala de grises es el siguiente:




Y la imagen resultado queda de la siguiente manera:



Umbral

Para el umbral se realizo lo siguiente:

1. Lo primero que hay que hacer es definir los valores mínimo y máximo que se utilizaran para comparar el promedio. En mi caso definí los valores utilizando un random.
2. Se recorre la imagen de la misma manera que en la escala de grises pixel por pixel.
3. De igual forma se saca el promedio de cada pixel.
4. Se hace una comparacion del promedio con los valores de mínimo y máximo
5. Si el promedio del pixel es menor al umbral mínimo el pixel se hace negro.
6. Si el promedio del pixel es mayor al umbral máximo se hace blanco.

El código para el umbral es el siguiente:



La imagen quedo de la siguiente manera:

Para este ejemplo los valores de umbral utilizados fueron:

  • Valor mínimo: 78
  • Valor máximo: 122






Otra corrida con valores diferentes:
  • Valor mínimo: 100
  • Valor máximo: 135

Y otro mas:

  • Valor mínimo: 53
  • Valor máximo: 142


El código completo queda de la siguiente manera:



Link a Git:

https://github.com/rodo2043/VisionComputacional













1 comentario:

  1. Sería bueno tener una subrutina que tome como parámetros los valores para los umbrales. Van 8 pts.

    ResponderEliminar