2016-07-30 26 views
1

私はOpenCVのSVMを訓練するために、次のコードを使用:OpenCVのSVM "サポートされていない応答タイプ" エラー

trainData
cv::SVMParams params; 
cv::SVM svm; 

params.svm_type = cv::SVM::C_SVC; 
params.kernel_type = cv::SVM::LINEAR; 
params.term_crit = cv::TermCriteria(CV_TERMCRIT_ITER, 100, 1e-6); 

svm.train(trainData, trainLabels, cv::Mat(), cv::Mat(), this->params); 

std::vector<std::vector<float>> data; 
// Do stuff and fill data vector 

cv::Mat trainData(data.size(), data.at(0).size(), CV_32FC1); 

for (int i = 0; i < data.size(); ++i) 
    for (int j = 0; j < data.at(0).size(); ++j) 
     trainData.at<float>(i, j) = data.at(i).at(j); 

trainLabelsある:

std::vector<unsigned> labels; 
// Do stuff and fill labels 

cv::Mat(labels); 

しかし、私はこのエラーがあります:

C:\builds\2_4_PackSlave-win32-vc12-shared\opencv\modules\ml\src\inner_functions.cpp:675:error: (-210) Unsupported response type in function cvPreprocessCategoricalResponses

これまでに一度も見たことがなく、検索したときに見つからなかった。

+0

あなたはそれが何であるか、なぜそれが存在するのか、それをどうやって解決するのか尋ねていますか? –

+0

@VeniVidiVici私はそれらのすべてがだと思いますが、どんな助けもありがとうございます。 – DimChtz

+0

関数 'cvPreprocessCategoricalResponses'はどこにありますか? –

答えて

0

問題は実際には非常に簡単でした。 cv::SVMunsigned intのラベルタイプに対応していません。intに変更されています。

関連する問題