Spaces:
Build error
Build error
| import cv2 | |
| import time | |
| def main(): | |
| """ | |
| Prueba simple de la cámara con dibujo de rectángulos de prueba | |
| para verificar el funcionamiento básico. | |
| """ | |
| print("Iniciando prueba de cámara...") | |
| # Iniciar la cámara | |
| cap = cv2.VideoCapture(0) | |
| if not cap.isOpened(): | |
| print("Error: No se pudo abrir la cámara.") | |
| return | |
| print("Cámara iniciada correctamente. Presione 'q' para salir.") | |
| # Contador de frames | |
| frame_count = 0 | |
| start_time = time.time() | |
| while True: | |
| # Leer un frame de la cámara | |
| ret, frame = cap.read() | |
| if not ret: | |
| print("Error al capturar el frame.") | |
| break | |
| # Incrementar contador | |
| frame_count += 1 | |
| elapsed = time.time() - start_time | |
| fps = frame_count / elapsed if elapsed > 0 else 0 | |
| # Crear copia del frame para dibujar | |
| display_frame = frame.copy() | |
| # Dibujar rectángulo de prueba en la esquina superior izquierda | |
| cv2.rectangle(display_frame, (50, 50), (200, 200), (0, 0, 255), 3) | |
| cv2.putText(display_frame, "Test Rectangle", (50, 40), | |
| cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2) | |
| # Dibujar otro rectángulo en el centro de la imagen | |
| h, w = display_frame.shape[:2] | |
| center_x, center_y = w // 2, h // 2 | |
| cv2.rectangle(display_frame, | |
| (center_x - 100, center_y - 100), | |
| (center_x + 100, center_y + 100), | |
| (0, 255, 0), 3) | |
| cv2.putText(display_frame, "Center Box", (center_x - 80, center_y - 110), | |
| cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 255, 0), 2) | |
| # Mostrar información de FPS | |
| cv2.putText(display_frame, f"FPS: {fps:.1f}", (10, h - 20), | |
| cv2.FONT_HERSHEY_SIMPLEX, 0.7, (255, 0, 0), 2) | |
| # Mostrar resultado | |
| cv2.imshow("Test Camera", display_frame) | |
| # Salir si se presiona 'q' | |
| if cv2.waitKey(1) & 0xFF == ord('q'): | |
| break | |
| # Imprime estadísticas | |
| print(f"Frames totales: {frame_count}") | |
| print(f"Tiempo total: {elapsed:.2f} segundos") | |
| print(f"FPS promedio: {fps:.1f}") | |
| # Liberar recursos | |
| cap.release() | |
| cv2.destroyAllWindows() | |
| if __name__ == "__main__": | |
| main() |