ros tutorial

Tutorial visión artificial con OpenCV

visión-artificial

Bienvenidos a este nuevo tutorial sobre visión artificial 100% en español. El primer paso consiste en tener una imagen o u video sobre el que trabajar.  En este tutorial vamos a ver cómo importar una imagen o un video desde un archivo guardado en nuestro ordenador, así como a leer nuestra webcam. Vamos allá!!!

Leer una imagen desde un archivo

En esta primera entrada sobre los fundamentos de la visión artificial utilizando OpenCV veremos como importar una imagen desde nuestro ordenador y veremos también cómo mostrar el contenido esta imagen en pantalla

De este modo podremos empezar a trabajar con nuestra imagen, editándola y haciendo cambios sobre esta

lo primero que haremos será importar la librería OpenCV en nuestro ordenador , para ello escribiremos en nuestro editor de código:

import cv2

Después cargamos nuestra imagen que en nuestro caso tenemos en la ruta «Pictures/alo.jpg» en la variable image, esto lo hacemos mediante la función imread

image = cv2.imread('img/alo.jpg')

Y creamos un bucle while, dentro de este bucle nos fijaremos en la última línea, el resto de líneas sólo sirven para cerrar la ventana emergente que nos aparecerá mostrando la imagen. Esta última línea contiene la función imshow, que nos mostrará en una pantalla llamada logo_opencv la variable image que hemos llenado con nuestra foto

while True:

    cv2.imshow('preview',image)
    
    if cv2.waitKey(1) & 0xFF == ord('q'):    
        break
        

Hay que entender que es un bucle while que se repite constantemente, en el que se nos muestra la variable image en cada loop del programa. 

        cv2.imshow('logo_opencv', image) # mostramos el valor image en pantalla en cada loop del bucle while

Si ejecutamos estas líneas de códigos en nuestro editor de código, deberíamos ver en una ventana aparte la foto que queremos cargar. Recuerda que tienes los códigos de los ejemplos en nuestro Github

opencv

Subscríbete a nuestro blog

Leer video desde una webcam

Para poder capturar imágenes de nuestra webcam, para ello escribimos en nuestro editor de código preferido lo siguiente:

import cv2

Importamos libreria OpenCV

cam = cv2.VideoCapture(0)

creamos nuestra cámara, le decimos que mire en el puerto 0, si no lee o da error probad con otro número como el 1

while(True):
    ret, frame = cam.read()
    cv2.imshow('webcam',frame)
    

    if cv2.waitKey(1) & 0xFF == ord('q'):    
        break
        
cv2.destroyAllWindows()
cam.release()

Por último ejecutamos un bucle while infinito, en el que almacenaremos en la variable frame cada imagen detectada por nuestra cámara en cada bucle loop del while, como esto se produce muy muy rápido, parece un video, pero en realidad son muchas imágenes que cambian. Al igual que en el ejemplo anterior sólo nos interesa las dos primeras líneas, ya que la sçultimas son para cerrar la ventana emergente con la letra q:

 

ret, frame = cam.read()     #cargamos la imagen en la variable frame
cv2.imshow('webcam', frame)     #Mostramos el valkor de frame en una ventana llamada 'webcam'

Por último en las dos últimas líneas del código, que se ejecutan una vez que salgamos del while (al presionar ‘q’ en el teclado), lo que hacemos es cerrar todas las ventanas y liberar la cámara para que la pueda usar otra aplicación.

 

Si todo va bien al ejecutar este pequeño código veremos las imagenes de nuestra webcam.

Pues bien, ya tenemos las dos maneras de nutrirnos de imágenes, en las siguientes entradas veremos cómo se descomponen los colores de las imagenes,cómo estas en realidad no son mas que matrices de varias dimensiones,….

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

ROS_custom_message

10 ROS Custom Message

ROS Custom Message Fundamentos de ROS Accede a otros posts En tutoriales anteriores a la hora de la comunicación pub/sub, siempre hemos usado mensajes predefinidos

Read More »

This website uses cookies to ensure you get the best experience on our website. By continuing to browse on this website, you accept the use of cookies for the above purposes.