在opencv中学习后保存KNN分类器
我使用了OpenCV KNN分类器,在对其进行训练后,我需要保存分类器,以便能够在测试阶段使用。我发现OpenCV中没有实现在opencv中学习后保存KNN分类器,opencv,Opencv,我使用了OpenCV KNN分类器,在对其进行训练后,我需要保存分类器,以便能够在测试阶段使用。我发现OpenCV中没有实现knn.save()。该怎么办?评论太长,所以我在这里发布这不是一个完整的解决方案,因此任何知道如何解决的人:请分享一个更好的答案 我已经看过了,但找不到任何直接的实现。然而,我发现(他的博客上有很多好东西),他知道如何阅读,包括K最近的邻居 您可以使用他的方法为CvKNearest实现写和读 顺便说一下,如果我的C++理解不正确,保存>代码>代码> > >代码>已经为你实
knn.save()
。该怎么办?评论太长,所以我在这里发布这不是一个完整的解决方案,因此任何知道如何解决的人:请分享一个更好的答案
我已经看过了,但找不到任何直接的实现。然而,我发现(他的博客上有很多好东西),他知道如何阅读,包括K最近的邻居
您可以使用他的方法为CvKNearest实现写和读
顺便说一下,如果我的C++理解不正确,<代码>保存>代码>代码> > >代码>已经为你实现了,只有<代码>写< /> >和<代码>读<代码>实际上需要实现。
例如,使用
CvBoost::save
:
(boost.cpp)CvBoost::save
-->(internal_functions.cpp)CvStatModel::save
-->(boost.cpp)CvBoost::write
同样,您需要添加此函数: (knearest.cpp)
CvBoost::write
对不起,我找不到更具体的东西。我希望这能有所帮助。在k-NN中,由于没有培训,所以没有实现保存和写入。 训练方法是只存储所有样本。 因此不推断“模型”,那么除了所有样本外,不必保存任何东西。在opencv 3.0中,knn->save(“train.yml”)被实现
虽然我无法使加载功能正常工作,但您可以使用文件存储轻松地从文件中读取模型,如上所述,在knn中,模型基本上就是功能,因此您总是将Mat功能存储到文件中,然后稍后加载。我不知道答案,但希望对此进行研究。请发布更多详细信息,至少链接到您正在使用的KNN分类器的文档(OpenCV?第三方插件?什么版本?)以及可以保存的另一个分类器的示例?感谢您的重播,我正在使用OpenCV 2.3的文档,并且可以保存类似boost分类器和mlp分类器的分类器