我一直在玩opencv2,使用Python跟踪多个对象-
cv2.__version__
=4.5.1
代码-
import imutils
import time
import cv2
import numpy as np
trackers = cv2.legacy_MultiTracker.create()
vs = cv2.VideoCapture('4.mp4')
while True:
frame = vs.read()
if frame is None:
break
frame = frame[1]
(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(1) & 0xFF
if key == ord("s"):
box = cv2.selectROI("Frame", frame, fromCenter=False,
showCrosshair=True)
print(box)
tracker = cv2.TrackerKCF()
trackers.add(tracker, frame, box)
elif key == ord("q"):
break
vs.release()
cv2.destroyAllWindows()
我犯了个错误-
--->trackers.add(tracker, frame, box)
TypeError: Expected Ptr<cv::legacy::Tracker> for argument 'newTracker'
我想知道这个错误,但找不到任何博客。添加,我认为,cv2.multi tracker\u create()函数被替换为cv2.legacy\u multi tracker.create()
帮帮我,谢谢
cv.legacy.TrackerXXX_create()+cv2.legacy_multi tracker.create()适合我。这是新代码
相关问题 更多 >
编程相关推荐