2017-01-03 1 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

Является ли это на самом деле OpenCV в версии 3.1, которую вы используете?

Посмотрите на документацию TrainData На самом деле я не мог видеть метод, который вы ищете в открытом интерфейсе. Существует getTestSampleIdx и getTestSampleWeights, но не тот, который вы хотите позвонить.

Смежные вопросы