使用opencv自带Tracker进行目标跟踪——重新设定跟踪目标

当希望重新设定一个目标进行跟踪的时候,以下两种做法都是无效的:

1.将新对象的Rect2d直接传递给update()函数;

2.再次使用tracker的init()函数。

解决办法:重新创建一个Tracker对象。

使用create函数建立一个新对象即可:

#opencv追踪方法
tracker_types = ['BOOSTING', 'MIL', 'KCF', 'TLD', 'MEDIANFLOW', 'MOSSE', 'CSRT']
tracker_type = tracker_types[6]
global tracker
if tracker_type == 'BOOSTING':
tracker = cv2.TrackerBoosting_create()
if tracker_type == 'MIL':
tracker = cv2.TrackerMIL_create()
if tracker_type == 'KCF':
tracker = cv2.TrackerKCF_create()
if tracker_type == 'TLD':
tracker = cv2.TrackerTLD_create()
if tracker_type == 'MEDIANFLOW':
tracker = cv2.TrackerMedianFlow_create()
if tracker_type == "CSRT":
tracker = cv2.TrackerCSRT_create()
if tracker_type == "MOSSE":
tracker = cv2.TrackerMOSSE_create()

你可能感兴趣的:(使用opencv自带Tracker进行目标跟踪——重新设定跟踪目标)