属性错误:在 Raspberry Pi 上的 cv2 中找不到 MultiTracker_create()

Dav*_* Ma 5 opencv raspberry-pi python-3.5

我目前正在尝试在 Raspberry Pi 上设置 opencv 跟踪器。但是,当我使用 MultiTracker_create() 函数时,它给了我一个归因错误:

multiTracker = cv2.MultiTracker_create()
Run Code Online (Sandbox Code Playgroud)

AttributeError: 模块 'cv2.cv2' 没有属性 'MultiTracker_create'

相同的代码在我的计算机上运行,​​但是当我在 Pi 上尝试时,它遇到了上述错误。我目前在带有 OpenCV 3.4.4 的 Raspi 上使用 Python 3.5。我的电脑使用 Python 3.7 和 OpenCV 3.4.1。

预先感谢您的帮助。

我已经确定我使用的是正确的包:pip3 install opencv_contrib_python

我还尝试查看帮助(cv2),但找不到有关 MultiTracker 的任何具体信息。

fea*_*ool 7

我自己偶然发现了这个。MultiTracker 似乎不再是 OpenCV 4.5.1 的一部分,但您应该能够从这样的遗留包中获取它:

multiTracker = cv2.legacy.MultiTracker_create()
Run Code Online (Sandbox Code Playgroud)

https://docs.opencv.org/4.5.1/df/d4a/classcv_1_1legacy_1_1MultiTracker.html

请注意,如果您随后调用multiTracker.add(...),您还需要添加跟踪器的旧版本。


小智 3

我遇到了同样的问题并解决了。也许你可以先做pip uninstall opecv-pythonand pip uninstall opencv-contrib-python,然后再做pip install opencv-python==3.4.4.19and pip install opencv-contrib-python==3.4.4.19。这就是我的解决方案,希望对你有帮助。