我目前正在尝试在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的任何特定信息。
答案 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-python
和pip uninstall opencv-contrib-python
,然后再执行pip install opencv-python==3.4.4.19
和pip install opencv-contrib-python==3.4.4.19
。那是我的解决方案,希望对您有所帮助。