2014-03-12 44 views
1

我是LibSVM和openCV領域的新成員,並且在編碼時遇到困難。我使用命令提示符生成了LibSVM模型。現在我有文件「myData.model」。現在我想用這個模型通過openCV預測實例。如何在openCV項目中使用由LIBSVM生成的模型

您能否讓我知道如何在openCV項目中調用模型文件以及如何將實例一一傳遞給它?

按照LIBSVM自述,這應該是這樣的:

Function: double svm_predict(const struct svm_model *model, 
           const struct svm_node *x); 

但我無法理解如何讓svm_node * X?我有與我爲訓練模型提取的相同格式的實例,即標籤....

請給我示例代碼來解決我的問題。

在此先感謝。

回答

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

相關問題