- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SVM处理问题实例讲解
第一个 支持向量机(Support Vector Machine) CvSVM
利用SVM 解决2维空间向量的3级分类问题
#include cv.h
#include highgui.h
#include ml.h
#include time.h
int main(int argc, char **argv)
{
int size= 400; // 图像的长度和宽度
int s= 1000;
int i, j , sv_num;
IplImage *img;
CvSVM svm= CvSVM ();
CvSVMParams param;
CvTermCriteria criteria; //停止迭代的标准
CvRNG rng= cvRNG(time(NULL));
CvPoint pts[s]; //定义1000个点
float data[s* 2];
int res[s];
CvMat data_mat, res_mat;
CvScalar rcolor;
const float *support;
// (1) 图像区域的确保和初始化
img= cvCreateImage(cvSize(size, size), IPL_DEPTH_8U, 3);
cvZero(img);
// (1) 图像区域的确保和初始化
确保画像区域,并清0(用黑色作初始化处理) 。
// (2)学习数据的生成
for (i= 0; i s; i++) {
pts[i].x= cvRandInt(rng) % size; //用随机整数赋值
pts[i].y= cvRandInt(rng) % size;
if (pts[i].y 50 * cos(pts [i].x* CV_PI/ 100) + 200) {
cvLine(img, cvPoint(pts[i].x- 2, pts[i].y- 2), cvPoint(pts[i].x+ 2, pts[i].y+ 2), CV_RGB(255, 0,
0));
cvLine(img, cvPoint(pts[i].x+ 2, pts[i].y- 2), cvPoint(pts[i].x- 2, pts[i].y+ 2), CV_RGB(255, 0,
0));
res[i] = 1;
}
else {
if (pts[i].x 200) {
cvLine(img, cvPoint(pts[i].x- 2, pts[i].y- 2), cvPoint(pts[i].x+ 2, pts[i].y+ 2), CV_RGB(0,
255, 0));
cvLine(img, cvPoint(pts[i].x+ 2, pts[i].y- 2), cvPoint(pts[i].x- 2, pts[i].y+ 2), CV_RGB(0,
255, 0));
res[i] = 2;
}
else {
cvLine(img, cvPoint(pts[i].x- 2, pts[i].y- 2), cvPoint(pts[i].x+ 2, pts[i].y+ 2), CV_RGB(0, 0,
255));
cvLine(img, cvPoint(pts[i].x+ 2, pts[i].y- 2), cvPoint(pts[i].x- 2, pts[i].y+ 2), CV_RGB(0, 0,
255));
res[i] = 3;
}
}
}
// (2)训练数据的生成
生成2维随机训练数据,并将其值放在CvPoint 数据类型的数组pts[ ] 中。
// (3)学习数据的显示
cvNamedWindow(SVM, CV_WINDOW_AUTOSIZE);
cvShowImage(SVM, img);
cvWaitKey(0);
将生成的数据绘制在起初确保的图像区域里,并显示出来。如图1-3,用红,绿,蓝各色标记的
那样,直到等到某个键被按下。
// (4)学习参数的生成
for (i= 0; i s; i++) {
data[i* 2
文档评论(0)