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


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

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

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


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


猜你喜欢

转载自blog.csdn.net/weixin_36060730/article/details/78446603