3

根据文档(开放 CV 版本 2.4),我可以使用 python 中的随机树集合(http://docs.opencv.org/modules/ml/doc/random_trees.html

导入 cv2 后,我可以看到变量 cv2.RTree,但它没有任何方法或属性(例如 train 方法)。

包裹在哪里以及如何使用它(如果有的话)

4

1 回答 1

2

您绝对可以在 python 中使用来自 OpenCV 的随机树。cv2.RTree 是构造函数,所以你基本上只需要这样说:

forest = cv2.RTree(...)

哪里 ... 是你的论点。当您只想使用默认参数运行时,您可以省略这些。无论如何,森林对象现在允许您进行训练和预测。如果您查看帮助文档,请使用

help(cv2.RTree)

你会看到它说:

RTrees() -> <RTrees object>

并且 help(RTrees()) 给出:

class RTrees(StatModel)
 |  Method resolution order:
 |      RTrees
 |      StatModel
 |      __builtin__.object
 |  
 |  Methods defined here:
 |  
 |  __repr__(...)
 |      x.__repr__() <==> repr(x)
 |  
 |  clear(...)
 |      clear() -> None
 |  
 |  getVarImportance(...)
 |      getVarImportance() -> retval
 |  
 |  predict(...)
 |      predict(sample[, missing]) -> retval
 |  
 ....

我知道阅读 cv2 python 文档通常很困难,但最终你会掌握它的窍门。基本上,该文档只是告诉您 RTrees() 将构造对象,并且一旦构造,您将获得一个具有您正在寻找的方法的对象。所以,回到具体的例子,一旦你创建了森林,你可以调用:

forest.train(...)
forest.predict(...)

使用您的数据矩阵。如果您需要个别方法的帮助,您现在可以询问以下内容:

help(forest.train)

虽然,cv2 帮助文档在 python 中通常有点迟钝。如果您还没有使用它,我建议您使用 ipython ( http://ipython.org ),因为它使试用过程变得非常简单。

祝你好运。

于 2013-05-03T14:27:10.580 回答