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

时间:2019-01-02 21:28:24

标签: opencv raspberry-pi python-3.5

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

multiTracker = cv2.MultiTracker_create()

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

相同的代码可以在我的计算机上工作,但是当我在Pi上尝试使用它时,会遇到上述错误。我目前在带有OpenCV 3.4.4的Raspi上使用Python 3.5。我的计算机使用带有OpenCV 3.4.1的Python 3.7。

在此先感谢您的帮助。

我已确保使用了正确的软件包: pip3安装opencv_contrib_python

我也尝试浏览help(cv2),但是找不到有关MultiTracker的任何特定信息。

3 个答案:

答案 0 :(得分:5)

我自己偶然发现了这个。看来 MultiTracker 不再是 OpenCV 4.5.1 的一部分,但您应该可以像这样从旧包中获取它:

multiTracker = cv2.legacy.MultiTracker_create()

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

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

答案 1 :(得分:2)

这是一个旧线程,但我会添加我的答案,可能对面临同样问题的人有所帮助。 cv2.MultiTracker_create() 也在 4.5.1 上的 OpenCV 文档中丢失。 [https://docs.opencv.org/4.5.1/d8/d77/classcv_1_1MultiTracker.html]

众所周知,OpenCV contrib 模块是“不稳定的”,这意味着它们可能会损坏或更改。就我而言,我的 opencv-python 和 opencv-contrib-python 都是 4.5.2,但 cv2.legacy.MultiTracker_create() 出错了。

最佳解决方案是卸载 opecv-python 和 opencv-contrib-python 并重新安装 4.4.0.46 版本。 这将解决问题。

pip install opencv-python==4.4.0.46
pip install opencv-contrib-python==4.4.0.46

答案 2 :(得分:0)

我遇到了同样的问题并解决了。也许您可以先执行pip uninstall opecv-pythonpip uninstall opencv-contrib-python,然后再执行pip install opencv-python==3.4.4.19pip install opencv-contrib-python==3.4.4.19。那是我的解决方案,希望对您有所帮助。