| import cv2 | |
| from ultralytics import YOLO | |
| # Cargar modelo YOLOv8 entrenado | |
| model = YOLO("/home/izaskunmz/yolo/yolov8-object-detection/runs/detect/train_coco8/weights/best.pt") | |
| # Abrir vídeo | |
| video_path = "/home/izaskunmz/yolo/yolov8-object-detection/raw-video/ny-traffic.mp4" | |
| cap = cv2.VideoCapture(video_path) | |
| # Obtener dimensiones del video original | |
| width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) | |
| height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) | |
| fps = int(cap.get(cv2.CAP_PROP_FPS)) | |
| # Definir el codec y crear el VideoWriter para guardar el resultado | |
| output_path = "/home/izaskunmz/yolo/yolov8-object-detection/processed-video/ny-traffic-processed.mp4" | |
| fourcc = cv2.VideoWriter_fourcc(*'mp4v') # Codec para formato MP4 | |
| out = cv2.VideoWriter(output_path, fourcc, fps, (width, height)) | |
| while cap.isOpened(): | |
| ret, frame = cap.read() | |
| if not ret: | |
| break # Si el vídeo ha terminado, salimos del bucle | |
| # Realizar detección en el frame | |
| results = model(frame) | |
| # Obtener frame con anotaciones | |
| annotated_frame = results[0].plot() | |
| # Guardar el frame en el video de salida | |
| out.write(annotated_frame) | |
| cap.release() | |
| out.release() # Liberar el escritor de video |