2017-04-08 79 views
0

因此,众所周知,由于OpenCV中的错误,当您尝试在保存它之后加载非线性内核SVM时出现错误。在C++中用于存储OpenCV的SVM对象的对象序列化[OpenCV 3.1.0]

这里指的更多: OpenCV 3.1.0: Save and load trained SVMs

人都得到了支持向量机加载,但无法获得相同的结果(分类数据被加载后损坏)。我试着编写我自己的svmloader函数来测试它。

Ptr<SVM> svmloader(const String& filepath) 
{ 
    FileStorage fs; 
    fs.open(filepath, FileStorage::READ); 

    Ptr<SVM> svm = Algorithm::read<SVM>(fs.getFirstTopLevelNode()); 
    return svm; 
} 

这个工程,但我现在可以确认,我已经测试模型前和后加载和结果看起来更糟后加载。那是在训练分类器并测试之后,它会很好,但如果你保存它并重新加载它,它将会消失。

所以我想我想用C++的对象序列化来解决这个问题。我如何将任意对象写入文件然后从该文件读取?

也可以有人证实,如果上面的错误已被固定在OpenCV的3.2.0我无法找到任何东西阅读发布

任何帮助,非常感谢乡亲

回答