问题遇到的现象和发生背景:
运行车牌识别的qt程序,基于opencv,debuger显示SVM报错。
问题相关代码,请勿粘贴截图
void svm_train(CvSVM & svmClassifier)
{
FileStorage fs;
fs.open("SVM.xml" , FileStorage::READ);
Mat SVM_TrainningData;
Mat SVM_Classes;
fs["TrainingData"] >>SVM_TrainningData;
fs["classes"] >>SVM_Classes;
CvSVMParams SVM_params;
SVM_params.kernel_type = CvSVM::LINEAR;
svmClassifier.train(SVM_TrainningData,SVM_Classes ,Mat(),Mat(),SVM_params); //SVM训练模型
fs.release();
}
运行结果及报错内容
打开图片就闪退
显示SVM_TrainningData <无法访问> cv::Mat
&"warning: GDB: Failed to set controlling terminal: \345\257\271\350\256\276\345\244\207\344\270\215\351\200\202\345\275\223\347\232\204 ioctl \346\223\215\344\275\234\n"
OpenCV Error: Bad argument (train data must be floating-point matrix) in cvCheckTrainData, file /home/leu/opencv-2.4.13.6/modules/ml/src/inner_functions.cpp, line 858
terminate called after throwing an instance of 'cv::Exception'
what(): /home/leu/opencv-2.4.13.6/modules/ml/src/inner_functions.cpp:858: error: (-5) train data must be floating-point matrix in function cvCheckTrainData
如图: