2017-02-22 61 views
4

Я работаю с Python 2.7 и OpenCV 3.1 Я хочу, чтобы запустить код для отслеживания объектов с помощью этого:Как добавить «Tracker» в OpenCV питона 2,7

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?

ответ

1

Похоже, что вы не скомпилировали OpenCV с модулями opencv_contrib. Вы должны перекомпилировать его. Вы можете найти очень хороший пошаговый учебник, как это сделать в блоге блога this.

EDIT:

Если вам необходимо скомпилировать на Windows, вы можете использовать this большой учебник по @Osama

Надеетесь, что это помогает.

+0

спасибо ... это здорово ... но мне нужно это в окнах, а что Ubuntu вы знаете, как я могу это сделать в Windows 8? – Elahe

+0

@Elahe Я добавил ссылку на учебник stackoverflow, описывающий компиляцию в Windows. – kyjanond

1

Я думаю, что самый простой и быстрый способ - установить через .whl-файлы. @foobar дает ответ в сообщениях @kyjanond, но вы можете получить файлы .whl из следующих ссылок.

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

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

Я установил OpenCV 3.3.0 на Python 2.7, так что я скачал:

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

Чтобы установить, я побежал:

  • питона -m пип установить opencv_python-3.3.0.10-cp27-cp27m-win32.whl
  • питона -m пип установить 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() 

Это approac Мне показалось, что мне хорошо.

0

Новые версии openCV используют, например: TrackerKCF_create().

Вы можете найти новые примеры here

0

После установки закончен. Все файлы установлены в папке /usr/local/.
Но чтобы использовать его, ваш Python должен уметь находить OpenCV модуль.

У вас есть два варианта.

  1. Перемещение модуля в любую папку в Python Path: путь 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 завершена. Откройте терминал и попробуйте import cv2.

4

Просто установите OpenCV-вно-Python

pip install opencv-contrib-python 

и он будет работать!

 Смежные вопросы

  • Нет связанных вопросов^_^