在anaconda环境下载opencv-contrib-python
修改代码如下
import cv2
# opencv已经实现了的追踪算法
OPENCV_OBJECT_TRACKERS = {
"csrt": cv2.TrackerCSRT_create,
"kcf": cv2.TrackerKCF_create,
"boosting": cv2.legacy.TrackerBoosting_create,
"mil": cv2.TrackerMIL_create,
"tld": cv2.legacy.TrackerTLD_create,
"medianflow": cv2.legacy.TrackerMedianFlow_create,
"mosse": cv2.legacy.TrackerMOSSE_create
}
import numpy as np
cap = cv2.VideoCapture("D:/vision/111.mp4")
trackers = cv2.legacy.MultiTracker_create()
while True:
_, frame = cap.read()
if frame is None:
break
frame = cv2.resize(frame, (600, int(frame.shape[0] * 600 / frame.shape[1])), cv2.INTER_AREA)
(success, boxes) = trackers.update(frame)
for box in boxes:
(x1, y1, w, h) = box
cv2.rectangle(frame, (int(x1), int(y1)), (int(x1 + w), int(y1 + h)), (0, 255, 0))
cv2.imshow("video", frame)
key = cv2.waitKey(100)
if key == ord('s'):
box = cv2.selectROI("video", frame, True)
trackers.add(cv2.TrackerKCF_create(), frame, box)
if key == 27:
break
cap.release()
cv2.destroyAllWindows()