Lectura de Códigos QR con pyzbar en Python
Los códigos QR son una forma de almacenamiento de información que se utilizan en una amplia gama de aplicaciones, como marketing, logística y comercio. Pueden contener una gran cantidad de datos, como direcciones web, números de teléfono, mensajes de texto, etc.
En este tutorial, aprenderemos a leer códigos QR con la librería pyzbar en Python. pyzbar es una librería de código abierto que proporciona una API simple para detectar y decodificar códigos QR.
Requisitos
Para seguir este tutorial, necesitarás los siguientes requisitos:
- Python 3.6 o superior
- La librería pyzbar
Instalación
Para instalar pyzbar, ejecuta el siguiente comando en tu terminal:
pip install pyzbar
Ejemplo básico
En el siguiente ejemplo, leeremos un código QR que contiene una dirección web:
import pyzbar
# Cargamos la imagen del código QR
image = cv2.imread("qrcode.png")
# Detectamos los códigos QR en la imagen
decoded = pyzbar.decode(image)
# Accedemos al primer código QR detectado
code = decoded[0]
# Imprimimos la información del código QR
print(code.data)
Este código producirá el siguiente resultado:
https://www.example.com
Decodificando diferentes tipos de códigos QR
pyzbar puede decodificar diferentes tipos de códigos QR, incluidos los códigos QR de texto, los códigos QR de URL, los códigos QR de correo electrónico, los códigos QR de vCard y los códigos QR de geolocalización.
Para obtener más información sobre los diferentes tipos de códigos QR que puede decodificar pyzbar, consulta la documentación de la librería.
Leyendo códigos QR en tiempo real
También podemos utilizar pyzbar para leer códigos QR en tiempo real. Para ello, utilizaremos la librería OpenCV para capturar imágenes de la cámara web.
En el siguiente ejemplo, leeremos un código QR que se muestra en la cámara web:
import cv2
import pyzbar
# Iniciamos la captura de la cámara web
cap = cv2.VideoCapture(0)
while True:
# Capturamos una imagen de la cámara web
ret, frame = cap.read()
# Detectamos los códigos QR en la imagen
decoded = pyzbar.decode(frame)
# Accedemos al primer código QR detectado
code = decoded[0]
# Imprimimos la información del código QR
if code:
print(code.data)
# Mostramos la imagen en la pantalla
cv2.imshow("Imagen", frame)
# Esperamos a que se pulse una tecla
key = cv2.waitKey(1)
# Si se pulsa la tecla "q", salimos del bucle
if key == ord("q"):
break
# Liberamos la cámara web
cap.release()
# Cerramos la ventana de la imagen
cv2.destroyAllWindows()
Este código producirá el siguiente resultado:
https://www.example.com
Conclusión
En este tutorial, hemos aprendido a leer códigos QR con la librería pyzbar en Python. pyzbar es una librería sencilla y potente que nos permite leer códigos QR de forma rápida y eficiente.
Para obtener más información sobre pyzbar, consulta la documentación de la librería.