Para esta semana en el laboratorio de Visión computacional, se nos pidió realizar un efecto en escala de grises a una imagen y algo extra sin utilizar librerías. Como extra implementé el efecto blanco y negro y efecto blur.
La función b_w hace la imagen en blanco y negro, esto se hace tomando los valores r,g,b nuevamente del pixel seleccionado, se saca el valor máximo de estos y se compara con un umbral definido (valor entre 0 y 255), si el valor máximo del pixel seleccionado es menor al umbral entonces el color será negro y en caso contrario será blanco. Al final solo ponemos este valor en el pixel seleccionado.
La función blur hace un efecto blur en la imagen, el procedimiento que segui fue primero identificar todos los pixeles de las orillas o margenes de la imagen, ya que esos pixeles solo tienen un vecino, después con los demás tome todos sus vecinos y los ordene de menor a mayor y calcule la mediana de esta lista. El valor que saliera como resultado es el que reemplaza el valor original del pixel. En la siguiente imagen se muestra esto gráficamente.
Los resultados de estos filtos se muestran en conjunto en la imagen siguiente, en el repositorio están por separado.
El repositorio donde se encuentran las fotos y el código es el siguiente:
Repositorio Visión Computacional
Explicación del código.
En la función grayscale es donde se realiza el procedimiento para hacer la imagen en escala de grises, este procedimiento simplemente se trata de tomar los pixeles de la imagen, en este caso como la imagen es a color se toman los los valores RGB, rojo, verde y azul del pixel. Al tener estos, se determina el promedio y se les pone este mismo al pixel seleccionado de la imagen.La función b_w hace la imagen en blanco y negro, esto se hace tomando los valores r,g,b nuevamente del pixel seleccionado, se saca el valor máximo de estos y se compara con un umbral definido (valor entre 0 y 255), si el valor máximo del pixel seleccionado es menor al umbral entonces el color será negro y en caso contrario será blanco. Al final solo ponemos este valor en el pixel seleccionado.
La función blur hace un efecto blur en la imagen, el procedimiento que segui fue primero identificar todos los pixeles de las orillas o margenes de la imagen, ya que esos pixeles solo tienen un vecino, después con los demás tome todos sus vecinos y los ordene de menor a mayor y calcule la mediana de esta lista. El valor que saliera como resultado es el que reemplaza el valor original del pixel. En la siguiente imagen se muestra esto gráficamente.
Los resultados de estos filtos se muestran en conjunto en la imagen siguiente, en el repositorio están por separado.
El repositorio donde se encuentran las fotos y el código es el siguiente:
Repositorio Visión Computacional
El umbral mejor tomarlo como entrada y no tenerlo escrito en el código fuente. Van 8 pts.
ResponderEliminar