本文共 1540 字,大约阅读时间需要 5 分钟。
Fu Xianjun. All Rights Reserved.
提示:以下是本篇文章正文内容,下面案例可供参考
在具有通道和空间可靠性的判别相关滤波器(DCF-CSR)中,我们使用空间可靠性图将滤波器支持调整为从帧中选择区域的一部分以进行跟踪。 这确保了所选区域的放大和定位,并改善了对非矩形区域或对象的跟踪。 它仅使用2个标准功能(HoG和颜色名称)。 它还以相对较低的fps(25 fps)运行,但为对象跟踪提供了更高的精度
代码如下 :
import cv2import numpy as np
代码如下 :
OPENCV_OBJECT_TRACKERS = { "csrt" :cv2.TrackerCSRT_create, "kcf" :cv2.TrackerKCF_create, "boosting" :cv2.TrackerBoosting_create, "mil" :cv2.TrackerMIL_create, "tld" :cv2.TrackerTLD_create,}# 实例化OpenCV的trackertrackers = cv2.MultiTracker_create()
vs = cv2.VideoCapture("1.mp4")while True: # 取当前帧 frame = vs.read() # (true,data) frame = frame[1] # 到头了就结束 if frame is None: break # resize每一帧 (h,w) = frame.shape[:2] width =600 r = width/float(w) dim = (width,int(h*r)) frame = cv2.resize(frame,dim) # 追踪结果 (success , boxes) = trackers.update(frame) # 绘制区域 for box in boxes: (x,y,w,h) = [int(v) for v in box] cv2.rectangle(frame, (x,y),(x+w,y+h),(0,255,0),2) cv2.imshow("frame",frame) key = cv2.waitKey(100) & 0xFF if key == ord("s"): # 选择一个区域,按 “s” box = cv2.selectROI("frame", frame, fromCenter=False,showCrosshair=True) # 创建一个新的追踪器 tracker = OPENCV_OBJECT_TRACKERS["kcf"]() trackers.add(tracker,frame,box) # 退出 if key == 27: breakvs.release()cv2.destroyAllWindows()
转载地址:http://ekusi.baihongyu.com/