基于opencv实现追踪物体的功能

        From sztu 自动化专业的小菜鸡。

        本篇将介绍计算机视觉的物体追踪,基于python的opencv。

        实战阶段,运用opencv内置的函数实现具体的物体追踪,这儿采用的原理是截取第一帧选取所要追踪的物体,去具体追踪它。

1.代码展示

import cv2
cap = cv2.VideoCapture(0)
#tracker = cv2.legacy.TrackerMOSSE_create()
tracker = cv2.legacy.TrackerCSRT_create()
success,img = cap.read()
bbox = cv2.selectROI("Tracking",img,False)
tracker.init(img,bbox)
def drawBox(img,bbox):
    x,y,w,h = int(bbox[0]),int(bbox[1]),int(bbox[2]),int(bbox[3])
    cv2.rectangle(img,(x,y),((x+w),(y+h)),(255,0,255),3,1)
    cv2.putText(img, "Tracking", (75, 75), cv2.FONT_HERSHEY_COMPLEX, 0.7, (0, 255, 0), 2)
while True:
    timer = cv2.getTickFrequency()
    success,img = cap.read()
    success,bbox = tracker.update(img)
    print(bbox)
    if success:
        drawBox(img,bbox)
    else:
        cv2.putText(img,"Lost", (75, 75), cv2.FONT_HERSHEY_COMPLEX, 0.7, (0, 0, 255), 2)
    fps = cv2.getTickFrequency()/(cv2.getTickCount()-timer)
    cv2.putText(img,str(int(fps)),(75,50),cv2.FONT_HERSHEY_COMPLEX,0.7,(0,0,255),2)
    cv2.imshow("1",img)

    if cv2.waitKey(1)&0xff == ord('q'):
        break

        这儿也不在详细讲解代码,具体有关可以查看博主前面几篇博客。

运行结果:

基于opencv实现追踪物体的功能

2.总结

        物体追踪是opencv里面一个比较常用且实用的功能,大家下去可以自行写一下其代码。

你可能感兴趣的:(opencv入门,计算机视觉,opencv,python)