Propuesta de Proyecto
Propuesta de Proyecto
Propuesta de Proyecto
18/09/2024
─
Andrés. A Socorro.
Universidad del Zulia.
Maracaibo.
1
Descripción general:
El programa se inicia creando una ventana gráfica donde el usuario puede interactuar con
varias funcionalidades relacionadas con la lectura de códigos QR. La interfaz incluye botones
para iniciar la lectura, mostrar instrucciones y créditos, y un control para habilitar o deshabilitar
el sonido.
def initialize_camera():
cap = cv2.VideoCapture(0)
if not cap.isOpened():
exit()
return cap
def is_connected():
try:
requests.get('http://www.google.com', timeout=5)
return True
except requests.ConnectionError:
return False
2
- La función play_sound emite un sonido (beep) al escanear un nuevo código QR, pero
solo si la opción de sonido está habilitada. Utiliza la biblioteca winsound para generar
el sonido.
winsound.Beep(frequency, duration)
Además, dibuja un polígono alrededor del código QR en el video y muestra el contenido del
código en la pantalla.
def read_qr_codes():
# Configura la conexión serial
puerto = 'COM9' # Cambia esto si es necesario
baud_rate = 9600
ser = serial.Serial(puerto, baud_rate, timeout=1)
time.sleep(2) # Espera a que se establezca la conexión
cap = initialize_camera()
scanned_codes = set()
3
history = []
while True:
ret, frame = cap.read()
if not ret:
print("Error: No se pudo leer el frame de la cámara.")
ser.write(b'N') # Marca un error
break
decoded_objects = decode(frame)
points = obj.polygon
if len(points) == 4:
cv2.polylines(frame, [np.array(points)], isClosed=True, color=(0, 255, 0), thickness=2)
cv2.putText(frame, qr_data, (points[0].x, points[0].y - 10),
cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
cap.release()
cv2.destroyAllWindows()
messagebox.showinfo("Finalizado", "Programa finalizado correctamente.")
show_history(history) # Muestra el historial al finalizar
def show_history(history):
if history:
history_message = "Historial de Códigos Escaneados:\n\n" + "\n".join(history)
else:
history_message = "No se han escaneado códigos."
messagebox.showinfo("Historial", history_message)
def create_interface():
global sound_enabled
root = tk.Tk()
5
root.mainloop()