【问题标题】:How to load SVM data from file in OpenCV 3.1?如何从 OpenCV 3.1 中的文件加载 SVM 数据?
【发布时间】:2016-08-17 17:07:35
【问题描述】:

我在从文件中加载训练有素的 SVM 时遇到问题。我使用 Python 和 OpenCv 3.1.0。我通过以下方式创建 svm 对象:

svm = cv2.ml.SVM_create()

接下来,我训练 svm 并通过以下方式保存到文件:

svm.save('data.xml')

现在我想在其他 Python 脚本中加载这个文件。在文档中我找不到任何方法来做到这一点。

有没有从文件加载 svm 的技巧?感谢您的任何回复。

【问题讨论】:

    标签: python svm opencv3.1


    【解决方案1】:

    我认为没有 svm.load(filepath) 方法作为 svm.save(filepath) 的对应方法有点令人困惑,但是当我阅读模块帮助时,我认为 SVM_load 是cv2.ml(SVM_create 的兄弟)。

    确保您的 opencv ma​​ster 分支是最新的(当前版本为 3.1.0-dev)

    >>> import cv2
    >>> cv2.__version__
    '3.1.0-dev'
    >>> help(cv2.ml)
    

    返回

    SVM_create(...)
        SVM_create() -> retval
    
    SVM_load(...)
        SVM_load(filepath) -> retval
    

    所以你可以简单地使用类似的东西:

    if not os.path.isfile('svm.dat'):
        svm = cv2.ml.SVM_create()
        ...
        svm.save('svm.dat')
    else:
        svm = cv2.ml.SVM_load('svm.dat')
    

    【讨论】:

      猜你喜欢
      • 2016-09-28
      • 2016-04-17
      • 1970-01-01
      • 2020-03-16
      • 1970-01-01
      • 2018-05-05
      • 2015-09-26
      • 2012-02-28
      • 1970-01-01
      相关资源
      最近更新 更多