Siempre creciendo, siempre aprendiendo. Cultura Maker.

Ratio: 0 / 5

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

¡Saludos, estudiantes!. Continuando con nuestro (somerísimo) repaso de las posibilidades de Open CV en Robótica, hoy quiero hablaros de las transformaciones y de las máscaras. Así, en general. A lo loco. Como si supiéramos de algo.

 

Y es que éste es un mundo muy, muy complejo, que implica el trabajo con  Matemáticas de alto nivel. Y esta humilde web es de un aprendiz para aprendices. Yo os voy explicando lo que voy descubriendo, y qué conclusiones saco, pero eso no quiere decir que tenga necesariamente razón. Así que es mi deber avisarte que todo lo que estás viendo en esta serie de artículos es siempre una aproximación (en muchos casos, hasta grosera) a las poderosas posibilidades que ofrece esta librería.

 

Pero dejémonos de monsergas: hoy quiero hablarte de filtros y máscaras. Para ello, es necesaria una primera explicación: Open CV es una herramienta matemática que trata a las imágenes como matrices de píxeles. Permite que utilice una imagen para ilustrarte:

 

MatBasicImageForComputer

 

Ratio: 5 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado

Bueno, pues si has leído con atención el capítulo anterior, ya estás preparado para comprender algunas particularidades de OpenCV desde la óptica de Python:

 

Conceptos básicos de OpenCV

Si analizamos brevemente el código del artículo anterior, podréis notar que trabajamos en cinco fases:

 

  • En un primer lugar, importamos las librerías necesarias: opencv y numpy (necesaria para opencv, ya que realiza múltiples operaciones matemáticas con las imágenes que se van procesando). Por otro lado, creamos un objeto denominado cap al que asociaremos la webcam que tenemos conectada (0 por defecto; si tuvieras varias, deberías utilizar múltiples números):
    import numpy as np
    import cv2
    cap = cv2.VideoCapture(0)
    

 

  •  A continuación, iniciamos un bucle mediante la instrucción while(True) que sólo se romperá si pulsamos la tecla 'q':
while(True):
#Operacion 1
#Operacion 2
#etc...
    #el procedimiento waitKey comprueba si se ha pulsado la tecla 'q' al final de cada bucle
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# Si se ha roto el bucle, procedemos a destruir la ventana y finalizar el programa
cap.release()
cv2.destroyAllWindows()

  • Aquí empieza la auténtica parte de tratamiento de vídeo: por un lado, creamos dos objetos denominados ret y frame que irán registrando las imágenes que componen nuestro vídeo mediante el procedimiento read() en el objeto cap. Por otro, creamos un objeto marco a partir de frame al que asignamos un modo de tratamiento de color (existen decenas, a cada uno le corresponde un flag, y no los controlo todos; en este caso creo que se limita a dejar el modo RGB para la cámara):
    #Dos objetos irán grabando las imágenes del objeto cap
    ret,frame = cap.read()

    # Especificamos el tipo de color (existen decenas) que queremos mostrar de la captura de frame y lo asignamos a un objeto que llamamos marco
    marco = cv2.cvtColor(frame, cv2.COLOR_RGB2RGBA)
  • Por último, sólo nos queda mostrar por una ventana a la que hemos puesto por nombre "Hola Mundo" dicho objeto marco mediante el procedimiento imshow():
    cv2.imshow('Hola Mundo',marco)
    

 

Ratio: 5 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado

Durante el verano de 2016, la envidia cochina y el famoso SAV (Síndrome del Ansia Viva, como dice Juan Manuel Amuedo, alias @colepower en Twitter), la envidia, decía, me obligaba a revisar páginas como las de Instructables y vídeos de Youtube donde gente como daGhizmo mostraba orgullosa sus propios diseños de brazo robótico, que muy dignamente colgaban en Internet para compartir con la comunidad. De hecho, es este mismo diseño el segundo que imprimí y monté, y el primero que me funcionó (pinchad en la imagen para acceder a la página de Instructables):

Ratio: 5 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado

¡Buenas!. En esta ocasión, vamos a hacer una aproximación, MUY, MUY, MUY SUPERFICIAL a Open CV, una librería sobre visión computerizada inteligente que me tiene enamorado desde que me acerqué a ella por primera vez. 

 

Open CV es software libre (Open Source Computer Vision), y dispone de interfaces para utilizarlo en lenguajes C, C++, Java y Python (este último es el que vamos a utilizar nosotros).

logoopencv

Este software está enfocado al tratamiento inteligente de imagen y de video, y según su página de referencia (http://opencv.org) está fuertemente enfocado a aplicaciones en tiempo real, es decir, está optimizado para un funcionamiento eficiente y rápido, sin requerir apenas tiempo de computación de datos (signifique eso lo que signifique)

 

Mientras navegas por esta web, posiblemente interactuemos con tu equipo mediante el uso de cookies. La actual legislación de la UE (European Union) me obliga a informarte de ello, caminante. We use cookies to improve our website and your experience when using it. Cookies used for the essential operation of this site have already been set. To find out more about the cookies we use and how to delete them, see our privacy policy.

  I accept cookies from this site.
EU Cookie Directive Module Information