2017-01-03 22 views
0

我使用毫升時收到此錯誤,OpenCV的3.1rror:'class cv :: ml :: TrainData'沒有名爲'getTestSamples'的成員Mat vdata = tdata-> getTestSamples();

: error: ‘class cv::ml::TrainData’ has no member named ‘getTestSamples’ 
Mat vdata = tdata->getTestSamples(); 
        ^

這可能是此錯誤的原因嗎?

這裏是我的代碼毫升:

我已經包含了這些在我的代碼

#include <opencv2/core.hpp> 
#include <opencv2/imgproc.hpp> 
#include "opencv2/imgcodecs.hpp" 
#include <opencv2/highgui.hpp> 
#include <opencv2/ml.hpp> 

using namespace cv; 
using namespace std; 
using namespace cv::ml; 




Ptr<ml::SVM> svm = ml::SVM::create(); 
Ptr<ml::TrainData> tdata = ml::TrainData::loadFromCSV("ear.csv",0,0,1); 
tdata->setTrainTestSplitRatio(0.8); 

Mat data = tdata->getTrainSamples(); 
Mat labels = tdata->getTrainResponses(); 
labels.convertTo(labels, CV_32S); 
svm->train(data,0,labels); 

Mat vdata = tdata->getTestSamples(); 
Mat vlabels = tdata->getTestResponses(); 
Mat results; 
svm->predict(vdata,results); 

回答

0

這實際上是在3.1版本的OpenCV您正在使用?

看看TrainData的文檔我實際上看不到你在公共接口中尋找的方法。有getTestSampleIdxgetTestSampleWeights,但不是你想打電話的人。

相關問題