from ultralytics import YOLO
from ultralytics.solutions import speed_estimation_v10
import cv2
# 加载YOLOv11模型
model = YOLO("yolo11n.pt") # 替换为实际的YOLOv11模型路径
# 获取模型中的对象名称
names = model.names # 获取模型类别名称
# 打开视频文件
cap = cv2.VideoCapture("交通路口.mp4")
# 获取视频的宽度、高度和帧率
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
# 创建视频写入器,用于输出处理后的视频
video_writer = cv2.VideoWriter("out.avi", cv2.VideoWriter_fourcc(*'mp4v'), fps, (w, h))
# 设置测速线段的两个端点
line_pts = [(0, 360), (1280, 360)] # 定义测速线段
# 初始化速度估计器
speed_obj = speed_estimation_v10.SpeedEstimator()
# 设置速度估计器的参数,包括测速线段、对象名称和是否显示图像
speed_obj.set_args(reg_pts=line_pts, names=names, view_img=True)
# 循环读取视频帧
while cap.isOpened():
# 读取一帧
05-09
6007

08-26