opencv svm使用时遇到的问题

项目需要用到支持向量机对提取到的特征向量进行分类,在使用Opencv的CvSVM时遇到:

OpenCV Error: Bad argument (train data must be floating-point matrix) in cvCheckTrainData, file ..\..\..\src\opencv\modules\ml\src\inner_functions.cpp, line 857
Exception in thread "main" CvException

opencv svm使用时遇到的问题_第1张图片

CvMat traindata在定义时确实是 CV_32FC1类型,所以一直认为traindata的类型没有错啊,明明是定义的32位浮点型;

但经过单步后,发现CvMat traindata在读取.xml文件后自动转换成了CV_64FC1类型,导致执行svm.train时出错!

发现后,把traindata强制转化成CV_32FC1类型后,顺利执行svm.train()。


太隐蔽了,搞了一天....路还很长


你可能感兴趣的:(编程语言,opencv,SVM,机器学习)