Ошибка предсказания OpenCV 3.0 NormalBayesClassifier

Я использую OpenCV 3.0.0 в C ++ для обучения нормального байесовского классификатора. Я обучил классификатор и сохранил его в файл. Сейчас я пытаюсь использовать классификатор для прогнозирования ответов. Вот соответствующий код:

Ptr<TrainData> trainingData = TrainData::loadFromCSV(trainingDataFile,0);
std::cout << "Training data has been loaded.\n";
Mat samples = trainingData->getTrainSamples();
Mat correctResponses = trainingData->getTrainResponses();

std::cout << "Loading NB classifier...\n";
Ptr<NormalBayesClassifier> nbClassifier = NormalBayesClassifier::load<NormalBayesClassifier>(trainingDataFile+"_trainedNBParams.dat");
std::cout << "NB classifier loaded.\n";

Mat receivedResponses;
std::cout << "Classifying data using NB classifier...\n";
nbClassifier->predict(samples,receivedResponses); //error here
std::cout << "Classification complete.\n";

Я получаю следующую ошибку:

OpenCV Error: Null pointer (When the number of input samples is >1, the output vector of results must be passed) in predictProb, file /home/keyur/OpenCV/opencv-3.0.0/modules/ml/src/nbayes.cpp, line 318
terminate called after throwing an instance of 'cv::Exception'
what():  /home/keyur/OpenCV/opencv-3.0.0/modules/ml/src/nbayes.cpp:318: error: (-27) When the number of input samples is >1, the output vector of results must be passed in function predictProb

Я не понимаю, как выходная матрица должна быть передана в функцию. Документация довольно расплывчата, и другие ответы StackOverflow довольно бесполезны для этой конкретной проблемы

Ссылка на документацию:
http://docs.opencv.org/3.0.0/d4/d8e/classcv_1_1ml_1_1NormalBayesClassifier.html

0

Решение

Ошибка произошла из-за ошибки в OpenCV 3.0.0, которая была исправлена ​​в OpenCV 3.1.0.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]