Не удалось использовать cv2.TrackerMOSSE_create() и другие методы в OpenCV [Python]

#python #pycharm

#python #opencv #обнаружение объекта

Вопрос:

Я пытаюсь выполнить простое обнаружение объектов с помощью OpenCV на Python. Моя проблема в том, что я не могу использовать метод TrackerMOSSE_create, как будто он не существует.

Я установил только пакет opencv-contrib-python, используя pip install opencv-contrib-python , и я знаю, что он не может сосуществовать с opencv-python в одной виртуальной среде, поэтому у меня его нет.

Я работаю на MAC и Python 3.8. Ниже приведен код.

 import cv2


print(cv2.__version__)

cap = cv2.VideoCapture(0)

tracker = cv2.TrackerMOSSE_create()


while True:

    timer = cv2.getTickCount()
    success, img = cap.read()

    fps = cv2.getTickFrequency() / (cv2.getTickCount() - timer)

    cv2.putText(img, str(int(fps)), (75, 50), cv2.FONT_ITALIC, 0.7, (0, 0, 255), 2)
    cv2.imshow("Tracking", img)

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

 

Ошибка, которую я имею:

 Traceback (most recent call last):
  File "/Users/marcin94/PycharmProjects/tracker_objects/main.py", line 8, in <module>
    tracker = cv2.TrackerMOSSE_create()
AttributeError: module 'cv2.cv2' has no attribute 'TrackerMOSSE_create'
 

Ответ №1:

У меня была такая же проблема с Python 3.7, я думаю, это связано с самой последней версией opencv-contrib-python, которую автоматически устанавливает pip. Итак, я установил версию 3.4.13.47 из этого обзора.

 pip install opencv-contrib-python==3.4.13.47
 

Тогда это сработало для меня. Удачи!

Комментарии:

1. Спасибо, это сработало

Ответ №2:

Просто измените cv2.TrackerMOSSE_create() на cv2.legacy.TrackerMOSSE_create() и он должен работать.