En este documento vamos a mostrar como acceder a una cámara FLIR desde python3.8 con ayuda del SDK de spinnaker y la libreria PySpin, adicional a esto también se muestran otras librerias que facilitan el uso de la libreria principal PySpin. Tambien se muestran unos ejemplos básicos del uso de estas librerias. Para empezar con el procedimiento es necesario tener previamente instalado unas dependecias.
En windows, ir a Microsft Store, buscar python3.8 e instalar.
Para esto, instalar el archivo adjunto llamado SpinnakerSDK_FULL_2.3.0.77_x64.exe
Si en el ordenador existe más de una verisión de Python, instalar las librerias con pip3.8
- Instalar numpy
pip3.8 install numpy
- Instalar matplotlib
pip3.8 install matplotlib
Matplotlib no es necesario para PySpin, pero es necesario para algunos ejemplos.
- Instalar PySpin
La extensión PySpin Python proporciona una interfaz de software común para controlar y adquirir imágenes de cámaras FLIR USB 3.0, GigE y USB 2.0 utilizando la misma API en Windows de 32 o 64 bits.
Para esto, instalar el whl aquí adjunto llamado spinnaker_python-2.3.0.77-cp38-cp38-win_amd64.whl con la siguinte linea de comando:
python3.8 -m pip install spinnaker_python-2.3.0.77-cp38-cp38-win_amd64.whl
Observacion: La versión de la librería spinnaker de python deben corresponder a la versión del SDK de spinnaker, en este ejemplo la versión para los dos archivos es 2.3.0.77.
Para esto presionar menu + R y ejecutar devmgmt.msc, si la cámara es reconocida debe aparecer en los dispositivos, así:
De lo contrario, significa que hay un problema de driver. Para corregir esto, abrir el programa SpinView
click derecho sobre el error y seleccionar Switch driver to resolve
seleccionar el driver Microsoft y hacer click en Install Driver.
Finalmente, ver una captura de la cámara para verificar su funcionamiento
Ir a la ruta files\spinnaker\Examples\Python3 y ejecutar:
python3.8 Acquisition.py
- simple-pyspin
Para poder usar esta libreria es necesario haber realizado todos los anteriores pasos, ya que simple-pyspin es una libreria que trabaja sobre PySpin y facilita su uso. Para su instalación ejecutar:
pip install simple-pyspin
Ejemplo 1: En este ejemplo se muestra como capturar y visualizar una imagen usando opencv y simple_pyspin
from simple_pyspin import Camera
import cv2
cam = Camera() # adquirir camara
cam.init() # inicializar camara
cam.start() # empezar stream
frame = cam.get_array() # obtener imagen
cv2.imshow("frame", frame) #mostrar frame
cv2.waitKey(0) # pulsar la letra Q para cerrar la ventana
cv2.destroyAllWindows()
cam.stop() # detener stream
cam.close() # es recomendable limpiar todo
Ejemplo 2: Adquirir video rgb
from simple_pyspin import Camera
import cv2
with Camera() as cam: # Initialize Camera
# If this is a color camera, get the image in RGB format.
if 'Bayer' in cam.PixelFormat:
cam.PixelFormat = "RGB8"
cam.init()
cam.start()
print("start video")
while True:
# capturar frame a frame
frame = cam.get_array()
cv2.imshow("frame", frame)
if cv2.waitKey(1) == ord('q'): #presionamos la tecla Q para cerrar la ventanas
break
cam.stop()
cv2.destroyAllWindows()
print("stop video")
Para más información visitar: simple_pyspi
- EasyPySpin
EasyPySpin es otra libreria que facilita el uso de PySpin, al igual que simple_pyspin esta libreria trabaja sobre PySpin. Para su instalación ejecutar:
pip3.8 install git+https://github.com/elerac/EasyPySpin
Ejemplo: En este ejemplo se muestra como capturar y visualizar una imagen usando opencv y EasyPySpin
import cv2
import EasyPySpin
cap = EasyPySpin.VideoCapture(0) # adquirir camara
ret, frame = cap.read() # capturar frame
cv2.imshow("frame", frame) # visualizar frame
cv2.waitKey(0) # presionar tecla Q para cerrar ventana
cap.release() # desconectar camara
cv2.destroyAllWindows()
Para más información visitar: EasyPySpin