OpenCV 3.2.0-dev - 3.2.0版本缺少RTree,无法找到开发版本

时间:2017-06-22 20:46:42

标签: python-2.7 opencv fedora opencv3.2

OpenCV 3.2.0 似乎没有 RTree库

但互联网上充满了 cv2.RTrees 的例子。我想也许是版本不匹配的问题 - 也许版本错了?它应该是 3.2.0-dev 吗?

但是在 Fedora 24 上,我似乎无法找到这个软件包,也无法在互联网上找到。我只看到ubuntu用户可以安装3.2.0-dev。我错过了什么吗?

>>> import cv2
>>> cv2.__version__
'3.2.0'
>>> cv2.RTrees
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'RTrees'
>>> cv2.ml.RTrees
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'RTrees'

1 个答案:

答案 0 :(得分:1)

您在此日期之前在互联网上找到的大多数RTrees示例来自版本2.4.x。这是因为截至1月中旬,仍然没有OpenCV RTrees模型的Python包装器,我们可以在OpenCV答案页面的this question中看到。引用它(用户 berak 于17年1月12日:

  

不幸的是,这不可能是atm。,从opencv3.2开始,只有SVM和ANN_MLP有正确包装的加载方法。

     

(是的,这是一个错误)

再搜索一下,发现此问题最近已得到解决(如this问题所述);您可以在OpenCV git上的pull request中看到此功能已添加。

因此,更新到最新的主分支和重建应解决问题。

注意:请记住克隆主存储库(opencv),它是实际包含RTrees模型的存储库,如果您正在使用它,也克隆contrib repository(opencv_contrib)。请在每个版本上签出相同的版本以避免兼容性问题。

加分:检查this OpenCV的优秀安装指南,其中还提供了一些其他建议,例如使用venv进行安装(它还有其他操作系统的指南)。