正如您所知,许多事情在OpenCV 3中发生了变化(与openCV2或旧的第一个版本比较)。Opencv 3支持向量机培训
在过去,训练SVM,应当使用:
CvSVMParams params;
params.svm_type = CvSVM::C_SVC;
params.kernel_type = CvSVM::POLY;
params.gamma = 3;
CvSVM svm;
svm.train(training_mat, labels, Mat(), Mat(), params);
在第三个版本的API,没有CvSVMParams
也不CvSVM
。令人惊讶的是,有a documentation page about SVM,但它告诉了所有事情,但不知道如何真正使用它(至少我无法做到)。 此外,互联网上没有人使用OpenCV 3.0的SVM。
目前,我只设法得到如下:
ml::SVM.Params params;
params.svmType = ml::SVM::C_SVC;
params.kernelType = ml::SVM::POLY;
params.gamma = 3;
能否请您为我提供的信息,如何改写实际培训OpenCV的3?
工程就像一个魅力,感谢您的快速反应! 你能告诉我,res cv :: Mat代表的结果如何? 它是否包含相同的值,在标签cv :: Mat? – 2014-11-24 21:46:21
res.at(0)将包含该id。 'something'在这里是float或int,取决于标签的类型 –
berak
2014-11-24 21:49:11
这个信息:“Mat query; // input,1channel,1 row(apply nesssecary重整(1,1))”改变了我的实现成功。谢谢@berak – Koray 2017-01-30 06:34:34