使用libsvm和OpenCV来预测类

时间:2013-06-11 20:46:12

标签: opencv libsvm

我有一个使用libsvm训练的SVM RBF模型。我有一个功能提取器,现在在OpenCV中开发,而不是在OpenCV中重新训练模型,我想直接使用libsvm模型。我使用libsvm使用svm_load_model加载模型。我现在想使用svm_predict(model,x),但测试数据将被加载到svm_node x中。如何将OpenCV Mat功能转换为svm_node,或者将C ++矢量功能转换为svm_node x?

struct svm_node
{
int index;
double value;
};

2 个答案:

答案 0 :(得分:2)

http://book.caltech.edu/bookforum/archive/index.php/t-4065.html

看看这个。这与你(和我)面临的问题类似。

答案 1 :(得分:-3)

这个链接教程是OpenCV中的SVM。
http://docs.opencv.org/doc/tutorials/ml/introduction_to_svm/introduction_to_svm.html

您可以设置SVM参数。即C和G.
CvSVMParams params;
params.svm_type = CvSVM :: C_SVC;
params.kernel_type = CvSVM :: LINEAR;
params.term_crit = cvTermCriteria(CV_TERMCRIT_ITER,100,1e-6);

在OpenCV中训练SVM模型
CvSVM SVM;
SVM.train(trainingDataMat,labelsMat,Mat(),Mat(),params);

最后,您可以预测SVM模型中的数据。
float response = SVM.predict(sampleMat);