这是我的代码:
int num_files = 2;
sad = sad.reshape(0, 1);
happy = happy.reshape(0, 1);
Mat trainData(num_files, happy.cols, CV_32FC1);
happy.copyTo(trainData.rowRange(0, 1));
sad.copyTo(trainData.rowRange(1, 2));
trainData.convertTo(trainData,CV_32FC1);
Mat labelsMat(num_files ,1 ,CV_32FC1);
labelsMat.rowRange(0, 1).setTo(1);
labelsMat.rowRange(1, 2).setTo(-1);
labelsMat.convertTo(labelsMat ,CV_32FC1);
CvSVMParams params;
params.svm_type = SVM::C_SVC;
params.kernel_type = SVM::RBF;
params.term_crit = TermCriteria(CV_TERMCRIT_ITER, (int)1e7, 1e-6);
CvSVM svm;
svm.train(trainData, labelsMat, Mat(), Mat(), params);
Mat testData = elbp;
testData =testData.reshape(0,1);
testData.convertTo(testData ,CV_32FC1);
float response = svm.predict(testData);
对不起,我在这里完全是一个小组
在将脸部图像转换为lbp之后,我试图通过svm对快乐和悲伤的脸进行分类
但预测结果始终是较高的标签,如果我标记为高兴1和悲伤-1,它一直给我1,但如果我标记为快乐1和悲伤2,则给出我的2。
我猜标签或参数有一些问题,或者我需要改变训练lbp训练直方图的方式。