OpenCV创建追踪器方法与对象

案例来源于© Fu Xianjun. All Rights Reserved
目录

  1. 能够了解目标追踪算法的作用
  2. 能够熟悉OpenCV追踪算法
  3. 能够掌握contrib包的安装
  4. 能够掌握OpenCV追踪算法的使用方法

CSFT追踪算法的使用
1.创建追踪器方法对象。

import numpy as np

OPENCV_OBJECT_TKACKERS = {
    "csrt": cv2.TrackerCSRT_create,
    "kcf": cv2.TrackerKCF_create,
    "boosting": cv2.TrackerBoosting_create,
    "mil": cv2.TrackerMIL_create,
    "tld": cv2.TrackerTLD_create
   
}

2.实例化追踪器对象

trackers = cv2.MultiTracker_create()
#  实例化OpenCV的tracker

代码如下(示例):

3.视频基本处理方法

vs = cv2.VideoCapture("soccer_01.mp4")#摄像
while True:#读取成功
    frame = vs.read()#取当前帧
    frame = frame[1]#到头了就结束
    if frame is None:
        break#如果视频为空则跳出循环
    (h,w) = frame.shape[:2]
    width = 600
    r = width / float(w)
    dim = (width,int(h*r))
    frame = cv2.resize(frame,dim)
    #追踪结果

4.追踪结果与区域绘制

(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)

5.选择目标ROI

  key = cv2.waitKey(100) & 0xFF
    if key == ord("s"):
        box = cv2.selectROI("frame",frame,fromCenter = False,showCrosshair=True)
        #选择感兴趣的区域,不是从中心开始,把十字线画出来
        tracker = OPENCV_OBJECT_TKACKERS["csrt"]()#函数
        trackers.add(tracker,frame,box)
    if key == 27:#按Esc退出
        break

6.关闭视频

vs.release()#释放视频
cv2.destroyAllWindows()

结果显示如下:
OpenCV创建追踪器方法与对象_第1张图片

你可能感兴趣的:(OpenCV入门,opencv)