-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathqr_scanner.py
40 lines (38 loc) · 1.21 KB
/
qr_scanner.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import cv2
from pyzbar.pyzbar import decode
def scan_qr_from_file(image_path):
"""Escanea y decodifica un código QR desde una imagen."""
try:
img = cv2.imread(image_path)
detected_qrs = decode(img)
for qr in detected_qrs:
data = qr.data.decode('utf-8')
print(f"Contenido del QR: {data}")
return data
print("No se detectó ningún código QR.")
return None
except Exception as e:
print(f"Error al escanear QR desde archivo: {e}")
return None
def scan_qr_from_camera():
"""Escanea un código QR usando la cámara."""
cap = cv2.VideoCapture(0)
print("Presione 'q' para salir.")
while True:
ret, frame = cap.read()
if not ret:
break
decoded_objs = decode(frame)
for obj in decoded_objs:
data = obj.data.decode('utf-8')
print(f"QR Detectado: {data}")
cap.release()
cv2.destroyAllWindows()
return data
cv2.imshow("QR Code Scanner", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
print("No se detectó ningún código QR.")
return None