【问题标题】:Object Tracking on a video using bbox, opencv and python使用 bbox、opencv 和 python 对视频进行对象跟踪
【发布时间】:2020-06-26 20:19:02
【问题描述】:

我正在尝试创建一个可以跟随我选择的人类的机器人,因为我正在使用带有 python 和 openCV 的树莓派。

我想围绕一个人创建 bbox,并且我希望我的相机跟踪那个人,我在互联网上找到了一些代码,我试图将它们放在一起,但是当我启动它给我图像的代码时,我可以选择一个对象,但它不更新帧并且图像被冻结。

当 ii 按空格或其他键时,它也会给我一个错误: “ok = tracker.init(图像,bbox) NameError: name 'tracker' is not defined"

有人可以给我一些建议吗? 这是仅用于对象跟踪的代码:

from picamera import PiCamera
import time
import cv2
import numpy as np

# initialize the camera and grab a reference to the raw camera capture
camera = PiCamera()
camera.resolution = (640, 480)
camera.framerate = 32
rawCapture = PiRGBArray(camera, size=(640, 480))

while True:
    for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True):
        image = frame.array
        bbox = cv2.selectROI(image, False)
        ok = tracker.init(image, bbox) 
        cv2.imshow("Camera Output", image)
        #rawCapture.truncate(0)
        ok, bbox = tracker.update(image)
        fps = cv2.getTickFrequency() / (cv2.getTickCount() - timer)

        if ok:
            p1 = (int(bbox[0]), int(bbox[1]))
            p2 = (int(bbox[0] + bbox[2]), int(bbox[1] + bbox[3]))
            cv2.rectangle(frame, pi, p2, (255, 0, 0), 2, 1)
        else:
            cv2.putText(image, "Tracking failure detected", (100, 80),
                        cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0, 0, 255), 2)

        cv2.putText(frame, tracker_type + "Tracker", (100, 20),
                    cv2.FONT_HERSHEY_SIMPLEX, 0.75, (50, 170, 50), 2);
        cv2.putText(image, "FPS:" ++ str(int(fps)), (100, 50),
                    cv2.FONT_HERSHEY_SIMPLEX, 0.75, (50, 170, 50), 2);
        cv2.imshow("Tracking", image)

        k = cv2.waitKey(5) #& 0xFF
        if "q" == chr(k & 255):
            break```





【问题讨论】:

  • 您可以发布错误的完整跟踪吗?
  • 这有帮助吗?选择一个 ROI,然后按 SPACE 或 ENTER 按钮!按 c 键取消选择过程!回溯(最近一次通话):文件“/home/pi/Desktop/Project/CameraVideo.py”,第 17 行,在 ok = tracker.init(image, bbox) NameError: name 'tracker' is not defined

标签: python opencv roi raspberry-pi4 picamera


【解决方案1】:

所以没有定义方法tracker。我找到了初始化方法的this。你可以这样做:

tracker = cv2.TrackerKCF_create()

这是考虑到你要实现opencv函数

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    • 2019-12-07
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多