我是LibSVM和openCV领域的新手,在编码方面遇到了困难。我使用命令提示符生成了LibSVM模型。现在我有文件" myData.model"。现在我想使用这个模型通过openCV预测实例。
您能告诉我如何在openCV项目中调用模型文件以及如何逐个传递实例吗?
根据libSVM自述文件,这应该是:
Function: double svm_predict(const struct svm_model *model,
const struct svm_node *x);
但是我无法理解如何制作svm_node * x?我的实例格式与我为训练模型提取的格式相同,即标签....
请给我示例代码以解决我的问题。
提前致谢。
答案 0 :(得分:2)
您必须加载模型并创建svm_node:
struct svm_model *SVMModel;
if ((SVMModel = svm_load_model(MODEL_FILE)) == 0) {
fprintf(stderr, "Can't load SVM model %s", MODEL_FILE);
return -2;
}
struct svm_node *svmVec;
svmVec = (struct svm_node *)malloc((dataMat.cols+1)*sizeof(struct svm_node));
double *predictions = new double[dataMat.rows];
您可以在此处找到完整示例:
http://kuantinglai.blogspot.co.at/2013/07/using-libsvm-with-opencv-mat.html