如何从 OpenCV 3.1 中的文件加载 SVM 数据?
How to load SVM data from file in OpenCV 3.1?
我在从文件加载训练有素的 SVM 时遇到问题。我使用 Python 和 OpenCv 3.1.0。我通过以下方式创建 svm 对象:
svm = cv2.ml.SVM_create()
接下来,我通过以下方式训练 svm 并保存到文件:
svm.save('data.xml')
现在我想在其他 Python 脚本中加载此文件。在文档中我找不到任何方法来做到这一点。
有没有从文件加载svm的技巧?感谢您的任何回复。
我认为没有 svm.load(filepath) 方法作为 svm.save(filepath) 的对应方法有点令人困惑,但是当我阅读模块帮助时,它对我来说很有意义SVM_load 是 cv2.ml 的 child(SVM_create 的兄弟姐妹)。
确保你的opencv master分支是up-to-date(当前版本3.1.0-dev)
>>> import cv2
>>> cv2.__version__
'3.1.0-dev'
>>> help(cv2.ml)
returns
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')
我在从文件加载训练有素的 SVM 时遇到问题。我使用 Python 和 OpenCv 3.1.0。我通过以下方式创建 svm 对象:
svm = cv2.ml.SVM_create()
接下来,我通过以下方式训练 svm 并保存到文件:
svm.save('data.xml')
现在我想在其他 Python 脚本中加载此文件。在文档中我找不到任何方法来做到这一点。
有没有从文件加载svm的技巧?感谢您的任何回复。
我认为没有 svm.load(filepath) 方法作为 svm.save(filepath) 的对应方法有点令人困惑,但是当我阅读模块帮助时,它对我来说很有意义SVM_load 是 cv2.ml 的 child(SVM_create 的兄弟姐妹)。
确保你的opencv master分支是up-to-date(当前版本3.1.0-dev)
>>> import cv2
>>> cv2.__version__
'3.1.0-dev'
>>> help(cv2.ml)
returns
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')