代码拉取完成,页面将自动刷新
from collections import defaultdict
import cv2
from ultralytics import YOLO
from ultralytics.utils.plotting import Annotator, colors
track_history = defaultdict(lambda: [])
model = YOLO("./Model/yolov8n-seg.pt")
VIDEO_PATH='./Test_Video/traffic_video.mp4'
RESULT_PATH='Object_tracking.mp4'
capture= cv2.VideoCapture(VIDEO_PATH)
w, h, fps = (int(capture.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer=cv2.VideoWriter(RESULT_PATH, cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
while True:
success, im0 =capture.read()
if not success:
print('视频读取完成')
break
annotator = Annotator(im0, line_width=2)
results = model.track(im0, persist=True)
if results[0].boxes.id is not None and results[0].masks is not None:
masks = results[0].masks.xy
track_ids = results[0].boxes.id.int().cpu().tolist()
for mask,track_id in zip(masks, track_ids):
color = colors(int(track_id), True)
txt_color = annotator.get_txt_color(color)
annotator.seg_bbox(mask=mask, mask_color=color, label=str(track_id), txt_color=txt_color)
video_writer.write(im0)
cv2.imshow(winname='windows',mat=im0)
#按空格键退出
if cv2.waitKey(1) & 0xFF == ord(' '):
break
#释放内存资源
video_writer.release()
capture.release()
cv2.destroyAllWindows()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。