首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Opencv 3 SVM训练

Opencv 3 SVM训练
EN

Stack Overflow用户
提问于 2014-11-25 04:59:24
回答 3查看 22.9K关注 0票数 11

正如你可能知道的,OpenCV 3中的许多东西(与openCV2或旧的第一版相比)发生了变化。

在过去,要训练支持向量机,可以使用:

代码语言:javascript
复制
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。

目前,我只获得了以下内容:

代码语言:javascript
复制
ml::SVM.Params params;
params.svmType = ml::SVM::C_SVC;
params.kernelType = ml::SVM::POLY;
params.gamma = 3;

你能给我提供一些信息,如何将实际的训练重写成openCV 3吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-11-25 05:07:24

在opencv3.0中,这肯定是不同的,但并不困难:

代码语言:javascript
复制
Ptr<ml::SVM> svm = ml::SVM::create();
// edit: the params struct got removed,
// we use setter/getter now:
svm->setType(ml::SVM::C_SVC);
svm->setKernel(ml::SVM::POLY);
svm->setGamma(3); 

Mat trainData; // one row per feature
Mat labels;    
svm->train( trainData , ml::ROW_SAMPLE , labels );
// ...
Mat query; // input, 1channel, 1 row (apply reshape(1,1) if nessecary)
Mat res;   // output
svm->predict(query, res);
票数 32
EN

Stack Overflow用户

发布于 2015-04-27 21:46:21

我将我的代码从OpenCV 2.4.9移植到3.0.0-rc1时遇到了同样的问题。不幸的是,自从答案发布后,API发生了变化,所以我想相应地更新它:

代码语言:javascript
复制
Ptr<ml::SVM> svm = ml::SVM::create();
svm->setType(ml::SVM::C_SVC);
svm->setKernel(ml::SVM::POLY);
svm->setGamma(3);

Mat trainData; // one row per feature
Mat labels;    
Ptr<ml::TrainData> tData = ml::TrainData::create(trainData, ml::SampleTypes::ROW_SAMPLE, labels);
svm->train(tData);
// ...
Mat query; // input, 1channel, 1 row (apply reshape(1,1) if nessecary)
Mat res;   // output
svm->predict(query, res);
票数 9
EN

Stack Overflow用户

发布于 2015-11-04 00:50:32

我知道这是一个古老的帖子,但我在寻找同样的解决方案时遇到了它。本教程非常有用:http://docs.opencv.org/3.0-beta/doc/tutorials/ml/introduction_to_svm/introduction_to_svm.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27114065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档