我有一个使用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;
};
答案 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);