【问题标题】:How to add "Tracker" in openCV python 2.7如何在openCV python 2.7中添加“跟踪器”
【发布时间】:2017-02-22 09:20:44
【问题描述】:

我正在使用 python 2.7 和 opencv 3.1 我想通过这个来运行跟踪对象的代码:

import cv2
import sys

if __name__ == '__main__' :

    # Set up tracker.
    # Instead of MIL, you can also use
    # BOOSTING, KCF, TLD, MEDIANFLOW or GOTURN

    tracker = cv2.Tracker_create("MIL")

    # Read video
    video = cv2.VideoCapture("videos/chaplin.mp4")

    # Exit if video not opened.
    if not video.isOpened():
        print "Could not open video"
        sys.exit()

    # Read first frame.
    ok, frame = video.read()
    if not ok:
        print 'Cannot read video file'
        sys.exit()

    # Define an initial bounding box
    bbox = (287, 23, 86, 320)

    # Uncomment the line below to select a different bounding box
    # bbox = cv2.selectROI(frame, False)

    # Initialize tracker with first frame and bounding box
    ok = tracker.init(frame, bbox)

但是当我运行它时,我遇到了这个错误:

AttributeError: 'module' object has no attribute 'Tracker_create'

这里是源代码:http://www.learnopencv.com/object-tracking-using-opencv-cpp-python/ 我正在寻找解决方案,但找不到任何有用的东西…… 我该怎么做才能将此模块添加到我的 opencv 库中?

【问题讨论】:

    标签: python opencv tracker


    【解决方案1】:

    只需安装 opencv-contrib-python

    pip install opencv-contrib-python
    

    它会起作用的!

    【讨论】:

      【解决方案2】:

      我认为最简单、最快的方法是通过 .whl 文件进行安装。 @foobar 在@kyjanond 链接的帖子中给出了答案,但您可以从以下链接获取 .whl 文件。

      OpenCV:https://pypi.python.org/pypi/opencv-python/3.3.0.10

      OpenCV 贡献者:https://pypi.python.org/pypi/opencv-contrib-python/3.3.0.10

      我在 Python 2.7 上安装了 OpenCV 3.3.0,所以我下载了:

      • opencv_python-3.3.0.10-cp27-cp27m-win32.whl
      • opencv_contrib_python-3.3.0.10-cp27-cp27m-win32.whl

      为了安装,我跑了:

      • python -m pip install opencv_python-3.3.0.10-cp27-cp27m-win32.whl
      • python -m pip install opencv_contrib_python-3.3.0.10-cp27-cp27m-win32.whl

      这可行,但在 OpenCV 的更新版本中,调用跟踪器函数的方式发生了变化。

      GitHub 存储库中的原始代码为:


      tracker_types = ['BOOSTING', 'MIL','KCF', 'TLD', 'MEDIANFLOW', 'GOTURN']
      
      tracker_type = tracker_types[1]
      
      tracker = cv2.Tracker_create(tracker_type)
      

      我把它改成了


      tracker_types = ['BOOSTING', 'MIL','KCF', 'TLD', 'MEDIANFLOW', 'GOTURN']
      
      tracker_type = tracker_types[1]
      
      if tracker_type == tracker_types[0]:
          tracker = cv2.TrackerBoosting_create()
      elif tracker_type == tracker_types[1]:
          tracker = cv2.TrackerMIL_create()
      elif tracker_type == tracker_types[2]:
          tracker = cv2.TrackerKCF_create()
      elif tracker_type == tracker_types[3]:
          tracker = cv2.TrackerTLD_create()
      elif tracker_type == tracker_types[4]:
          tracker = cv2.TrackerMedianFlow_create()
      elif tracker_type == tracker_types[5]:
          tracker = cv2.TrackerGOTURN_create()
      

      这种方法似乎对我很有效。

      【讨论】:

        【解决方案3】:

        看起来您没有使用 opencv_contrib 模块编译您的 OpenCV。你必须重新编译它。您可以在 this 博文中找到一个非常好的分步教程。

        编辑:

        如果你需要在 Windows 上编译它,你可以使用 @Osama 的 this 很棒的教程

        希望对你有帮助。

        【讨论】:

        • 谢谢...太好了...但我在 Windows 中需要它而不是在 Ubuntu 中你知道我如何在 Windows 8 中做到这一点吗?
        • @Elahe 我添加了一个指向 stackoverflow 教程的链接,该教程描述了在 Windows 上进行编译。
        • 对我来说,使用whl-file 是最方便的方式。感谢您的链接!
        【解决方案4】:

        一旦安装结束。所有文件都安装在 /usr/local/ 文件夹。
        但是要使用它,你的 Python 应该能够找到 OpenCV 模块。

        你有两种选择。

        1. 将模块移动到 Python 路径中的任意文件夹:在 Python 终端输入import sys;print sys.path 可以找到 Python 路径。它将打印出许多位置。将/usr/local/lib/python2.7/site-packages/cv2.so 移动到此文件夹中的任何一个。例如,su mv /usr/local/lib/python2.7/site-packages/cv2.so /usr/lib/python2.7/ → 站点包。但是每次安装OpenCV时都必须这样做。

        2. /usr/local/lib/python2.7/site-packages 添加到PYTHON_PATH:只能执行一次。只需打开~/.bashrc 并添加以下行,然后注销并返回。 export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages。至此 OpenCV 安装完成。打开终端并尝试 导入 cv2。

        【讨论】:

          【解决方案5】:

          新版本的 openCV 使用例如:TrackerKCF_create() 表示法。

          你可以找到新的例子here

          【讨论】:

            猜你喜欢
            • 2016-04-24
            • 2011-03-23
            • 2021-11-27
            • 2015-04-09
            • 2011-03-23
            • 2023-03-08
            • 1970-01-01
            • 2018-09-20
            相关资源
            最近更新 更多