#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() и он должен работать.