Почему ошибка во время выполнения «обучающие данные должны быть матрицей с плавающей запятой»?

#opencv

#opencv

Вопрос:

int main(int argc, char* argv[]){

 Mat aObj, bObj;

string fList("horse.jpg");

for(int i = 0; i < 10; i  ){

    aObj = imread(fList, CV_32FC1);
}
string fRes("horse-2.jpg");

bObj = imread(fList, CV_32FC1);

CvKNearest C(aObj, bObj); //error after here

return 0;
  

}

Предполагается, что AFAIK CV_32FC1 справится с задачей, и поскольку я использую opencv 2.2 и другие вещи работают хорошо, я не понимаю проблемы. Mat — допустимый тип аргумента (Intellisense показывает параметры в поле), использующий visual studio 2010. Отладка привела к inner_functions.cpp в ../ ../Opencv2.2.0/modules/ml / src / Функция, вызывающая ошибку, называется cvCheckTrainData. Пожалуйста, помогите.

Ответ №1:

Я знаю, что этот пост довольно старый; я пришел сюда, чтобы поискать что-то другое. Однако я загрузил исходный файл, который показывает вам, как использовать различные алгоритмы машинного обучения с OpenCV2. Это в моей учетной записи github на https://github.com/bytefish/opencv/blob/master/machinelearning-src/main.cpp .

С наилучшими пожеланиями, Филипп.