已经有训练好的YOLO模型,执行命令如下,其中show是选择是否一遍处理一遍预览处理后的视频。
模型和mp4视频资源
cpp
yolo predict model=best.pt source=car.mp4 project=. name=output_video show=True
以下是代码的方式完成,会把画好框,带置信度的视频保存下来。
cpp
from ultralytics import YOLO
import cv2
# 你的模型路径(best.pt)
model = YOLO("best.pt")
# 输入视频
input_path = "car.mp4"
output_path = "output.mp4"
cap = cv2.VideoCapture(input_path)
# 获取视频信息
fourcc = cv2.VideoWriter_fourcc(*"mp4v")
fps = cap.get(cv2.CAP_PROP_FPS)
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
out = cv2.VideoWriter(output_path, fourcc, fps, (width, height))
while True:
ret, frame = cap.read()
if not ret:
break
# YOLO 推理
results = model(frame, verbose=False)
# 绘制检测结果
annotated_frame = results[0].plot() # 自动画框/标签/置信度
# 写入输出视频
out.write(annotated_frame)
cap.release()
out.release()
print("✅ 保存完成:", output_path)