OpenCV3 Ref SVM : cv::ml::SVM Class Reference
OpenCV3 Ref SVM : cv::ml::SVM Class Reference
OpenCV2:
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/ml/ml.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
	float labels[4] = { 0, 0, 1, 1 }; //训练标签数据,前两个表示男生,后两个表示女生
	Mat labelsMat(3, 1, CV_32FC1, labels);
float trainingData[4][2] = { { 186,80 },{ 185,81 },{ 160,50 },{ 161,48 } }; //训练数据,两个维度,表示身高和体重  
	Mat trainingDataMat(3, 2, CV_32FC1, trainingData);
CvSVMParams params; //SVM参数
	params.svm_type = CvSVM::C_SVC;  //SVM类型. 这里用C_SVC
	params.kernel_type = CvSVM::LINEAR; //SVM 核类型
	params.term_crit = cvTermCriteria(CV_TERMCRIT_ITER, 100, 1e-6); //终止条件,最大迭代次数和容许误差
CvSVM SVM;
	SVM.train(trainingDataMat, labelsMat, Mat(), Mat(), params);//训练
Mat sampleMat = (Mat_<float>(1, 2) << 184, 79); //测试数据,为一男生
	float response = SVM.predict(sampleMat);
if (response == 0)
		cout << "Boy" << endl;
	else if (response == 1)
		cout << "Girl" << endl;
return 0;
}
OpenCV3中的SVM:
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/ml/ml.hpp>
#include <iostream>
using namespace cv;
using namespace cv::ml;
using namespace std;
int main()
{
    float labels[4] = { 0, 0, 1, 1 }; //训练标签数据
    Mat labels_train(4, 1, CV_32F, labels);
float trainingData[4][2] = { { 186,80 },{ 185,81 },{ 160,50 },{ 161,48 } }; //训练数据,两个维度
    Mat data_train(4, 2, CV_32F, trainingData);
Ptr<SVM> svm = SVM::create();
    svm->setKernel(cv::ml::SVM::KernelTypes::LINEAR);
    svm->setType(cv::ml::SVM::Types::C_SVC);
    svm->setTermCriteria(TermCriteria( TermCriteria::MAX_ITER + TermCriteria::EPS, 1000, FLT_EPSILON ));
svm->train(data_train, ROW_SAMPLE, labels_train);
    //svm->save("SVMmodel"); //存储模型
    //Ptr<SVM> svm = StatModel::load<SVM>("SVMmodel"); //读取模型
Mat testData(1,2,CV_32F);//测试数据
    Mat responses; //预测结果
    testData.at<float>(0,0) = 184;
    testData.at<float>(0,1) = 79;
    svm->predict(testData, responses);
    responses.convertTo(responses,CV_32S);
if (response.at<int>(0,0) == 0)
        cout << "Boy" << endl;
    else if (response.at<int>(0,0) == 1)
        cout << "Girl" << endl;
return 0;
}
--------------------- 
作者:纯洁可爱小昊昊 
来源:CSDN 
原文:https://blog.csdn.net/jhszh418762259/article/details/60143152 
版权声明:本文为博主原创文章,转载请附上博文链接!
OpenCV3 Ref SVM : cv::ml::SVM Class Reference的更多相关文章
- Unknown/unsupported SVM type in function 'cv::ml::SVMImpl::checkParams'
		1.在使用PYTHON[Python 3.6.8]训练样本时报错如下: Traceback (most recent call last): File "I:\Eclipse\Python\ ... 
- SVM:从理论到OpenCV实践
		(转载请注明出处:http://blog.csdn.net/zhazhiqiang/ 未经允许请勿用于商业用途) 一.理论 参考网友的博客: (1)[理论]支持向量机1: Maximum Marg ... 
- 机器学习:SVM(scikit-learn 中的 SVM:LinearSVC)
		一.基础理解 Hard Margin SVM 和 Soft Margin SVM 都是解决线性分类问题,无论是线性可分的问题,还是线性不可分的问题: 和 kNN 算法一样,使用 SVM 算法前,要对数 ... 
- 机器学习:SVM(目标函数推导:Hard Margin SVM、Soft Margin SVM)
		一.Hard Margin SVM SVM 的思想,最终用数学表达出来,就是在优化一个有条件的目标函数: 此为 Hard Margin SVM,一切的前提都是样本类型线性可分: 1)思想 SVM 算法 ... 
- Python机器学习笔记:SVM(1)——SVM概述
		前言 整理SVM(support vector machine)的笔记是一个非常麻烦的事情,一方面这个东西本来就不好理解,要深入学习需要花费大量的时间和精力,另一方面我本身也是个初学者,整理起来难免思 ... 
- 支持向量机(Support Vector Machine,SVM)—— 线性SVM
		支持向量机(Support Vector Machine,简称 SVM)于 1995 年正式发表,由于其在文本分类任务中的卓越性能,很快就成为机器学习的主流技术.尽管现在 Deep Learnin ... 
- 模式识别之svm()---支持向量机svm 简介1995
		转自:http://www.blogjava.net/zhenandaci/archive/2009/02/13/254519.html 作者:Jasper 出自:http://www.blogjav ... 
- [Machine Learning & Algorithm]CAML机器学习系列2:深入浅出ML之Entropy-Based家族
		声明:本博客整理自博友@zhouyong计算广告与机器学习-技术共享平台,尊重原创,欢迎感兴趣的博友查看原文. 写在前面 记得在<Pattern Recognition And Machine ... 
- [Machine Learning & Algorithm]CAML机器学习系列1:深入浅出ML之Regression家族
		声明:本博客整理自博友@zhouyong计算广告与机器学习-技术共享平台,尊重原创,欢迎感兴趣的博友查看原文. 符号定义 这里定义<深入浅出ML>系列中涉及到的公式符号,如无特殊说明,符号 ... 
随机推荐
- redis中关闭rdb跟aof
			https://zm10.sm-tc.cn/?src=l4uLj8XQ0IiIiNGdip2KlJDRnJCS0JaRmZCbmouelpPSzc%2FJz8vJxtGXi5KT&uid=49 ... 
- 「USACO09FEB」改造路Revamping Trails
			传送门 Luogu 解题思路 有点像这题,但是现在这道不能跑k遍SPFA了,会TLE. 那么我们就跑分层图最短路,然后就变成模板题了. 细节注意事项 别跑SPFA就好了. 参考代码 #include ... 
- vagrant的使用介绍
			()添加镜像到本地仓库 vagrant box add bt_centos6.6_zouke centos-6.6-x86_64.box )初始化 vagrant init ()启动vm vagran ... 
- poj1861 network(并查集+kruskal最小生成树
			题目地址:http://poj.org/problem?id=1861 题意:输入点数n和边数n,m组边(点a,点b,a到b的权值).要求单条边权值的最大值最小,其他无所谓(所以多解:(.输出单条边最 ... 
- CSS-lineheight
			.test div{width:300px;margin:15px 0;border:1px solid #000;}.test p{margin:0;font-size:30px;}.fixed d ... 
- MVC、MVT简介
			一.MVC MVC的产生理念: 分工.让专门的人去做专门的事. MVC的核心思想: 解耦. M: Model,模型, 和数据库进行交互. V: View,视图, 产生html页面. C: Contro ... 
- 快速为Eclipse配置PyDev插件
			想学习Python,查询网络之后发现PyDev是很好的插件,所以就想为Eclipse配置它.结果在整个配置的过程中出现了各种问题,版本问题,重复问题,反正乱七八糟的,本身安装一次的时间就很长,中间出现 ... 
- 2019 OI日记
			// 我觉得记日记是个好习惯吧 毕竟指不定哪天就学不下去了 就AFO了 就没有梦了 // [置顶]活跃于你谷普及训练场.ybt(没底气说全部).loj(提高基础部分) //优先级从前往后 因为 ... 
- 剑指offer 按之字型顺序打印二叉树
			题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推. 使用两个栈进行存储,我们在打印某一行节点 ... 
- 01 vue入门
			vue简介 官网上有介绍,这里粘出来 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心 ... 
