在 openCV [Python] 中使用 cv2.TrackerMOSSE_create() 和其他方法失败

Failed to use cv2.TrackerMOSSE_create() and other methods in openCV [Python]

我正在尝试在 Python 中使用 OpenCV 执行简单的对象检测。我的问题是我无法使用 TrackerMOSSE_create 方法,就好像它不存在一样。

我只使用 pip install opencv-contrib-python 安装了 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) & 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'

我在 Python 3.7 中遇到了同样的问题,我认为这与 pip 自动安装的最新版本的 opencv-contrib-python 有关。所以,我从这个 overview.

安装了版本 3.4.13.47
pip install opencv-contrib-python==3.4.13.47

然后它对我有用。祝你好运!

只需将 cv2.TrackerMOSSE_create() 更改为 cv2.legacy.TrackerMOSSE_create() 即可。