当使用SVM训练模型是出现以下错误:
error Traceback (most recent call last)
<ipython-input-3-e529285ae5ac> in <module>
44 svm.setC(0.05)
45 # 6,train
---> 46 ret = svm.train(featureArray,cv2.ml.ROW_SAMPLE,labelArray)
47 # 7. 检测
48 alpha = np.zeros((1),np.float32)
error: OpenCV(3.4.2) C:\Miniconda3\conda-bld\opencv-suite_1534379934306\work\modules\ml\src\svm.cpp:1629: error: (-5:Bad argument) in the case of classification problem the responses must be categorical; either specify varType when creating TrainData, or pass integer responses in function 'cv::ml::SVMImpl::train'
报错行是:
ret = svm.train(featureArray,cv2.ml.ROW_SAMPLE,labelArray)
最可能的原因是:
labelArray的数据类型有问题:
源代码是:
labelArray = np.zeros(((PosNum+NegNum),1),np.float32)
修改成:
labelArray = np.zeros(((PosNum+NegNum),1),np.int32)