【问题标题】:OpenCV 3.2.0-dev - 3.2.0 version missing RTrees, unable to find dev versionOpenCV 3.2.0-dev - 3.2.0 版本缺少 RTrees,无法找到开发版本
【发布时间】:2017-11-26 07:20:03
【问题描述】:

OpenCV 3.2.0 似乎没有 RTrees 库

但是互联网上到处都是 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'

【问题讨论】:

  • 我在 Ubuntu 16 上使用`OpenCV` 3.2.0 版并且也遇到了这些错误
  • 显然,这个问题最近得到了解决。我会在我的答案中发布它。更新到最新版本应该可以解决这个问题。

标签: python-2.7 opencv fedora opencv3.2


【解决方案1】:

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

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

(是的,这是一个错误)

搜索了一下发现这个问题最近已经修复了(在this问题中指出);您可以在 OpenCV git 上的 pull request 中看到此功能。

因此,更新到最新的主分支并重建应该可以解决问题。

注意:记得克隆主存储库(opencv),它实际上包含RTrees模型,如果你正在使用它还克隆contrib存储库(@ 987654325@)。请检查每个版本的相同版本以避免兼容性问题。

奖励:查看this 很棒的 OpenCV 安装指南,它还提供了一些额外的建议,例如使用 venv 进行安装(它也有其他操作系统的指南)。

【讨论】:

  • Cloned github.com/opencv/opencv.git github.com/opencv/opencv_contrib.git 然后在3.2.0版本上checkout 用cmake和make安装(教程里写什么)还是找不到方法。
  • 您是否也更新并重建了主仓库(不仅仅是“contrib”)?请记住,贡献者只有额外的模块(通常不完全支持和实验)。你也应该克隆这个:github.com/opencv/opencv。我将更新我的答案以澄清这一点,并分享我找到的 OpenCV 安装的一个很好的链接。
  • 是的。谢谢你。标记为答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-30
  • 2017-05-10
  • 2014-12-15
  • 1970-01-01
  • 2016-05-03
  • 2017-08-14
  • 1970-01-01
相关资源
最近更新 更多