全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1. /利用 SVM 解决 2 维空间向量的 3 级分类问题 2. 3. #include “stdafx.h“ 4. 5. #include “cv.h“ 6. #include “highgui.h“ 7. 8. #include 9. #include 10. 11. #include 12. 13. #include 14. using namespace std; 15. 16. int main(int argc, char *argv) 17. 18. int size = 400; /图像的长度和宽度 19. const int s = 100; /试验点个数(可更改!) 20. int i, j, sv_num; 21. IplImage *img; 22. CvSVM svm = CvSVM(); / 23. CvSVMParams param; 24. CvTermCriteria criteria;/停止迭代的标准 25. CvRNG rng = cvRNG(time(NULL); 26. CvPoint ptss; /定义 1000 个点 27. float datas*2; /点的坐标 28. int ress; /点的所属类 29. CvMat data_mat, res_mat; 30. CvScalar rcolor; 31. const float *support; 32. / (1)图像区域的确保和初始化 33. img= cvCreateImage(cvSize(size, size), IPL_DEPTH_8U, 3); 34. cvZero(img); 35. /确保画像区域,并清 0(用黑色作初始化处理)。 36. 37. / (2)学习数据的生成 38. for (i= 0; i 50 * cos(ptsi.x* CV_PI/ 100) + 200) 42. cvLine(img, cvPoint(ptsi.x- 2, ptsi.y- 2), cvPoint(ptsi.x+ 2, ptsi.y+ 2), CV_RGB(255, 0, 0); 43. cvLine(img, cvPoint(ptsi.x+ 2, ptsi.y- 2), cvPoint(ptsi.x- 2, ptsi.y+ 2), CV_RGB(255, 0, 0); 44. resi = 1; 45. 46. else 47. if (ptsi.x 200) 48. cvLine(img, cvPoint(ptsi.x- 2, ptsi.y- 2), cvPoint(ptsi.x+ 2, ptsi.y+ 2), CV_RGB(0, 255, 0); 49. cvLine(img, cvPoint(ptsi.x+ 2, ptsi.y- 2), cvPoint(ptsi.x- 2, ptsi.y+ 2), CV_RGB(0, 255, 0); 50. resi = 2; 51. 52. else 53. cvLine(img, cvPoint(ptsi.x- 2, ptsi.y- 2), cvPoint(ptsi.x+ 2, ptsi.y+ 2), CV_RGB(0, 0, 255); 54. cvLine(img, cvPoint(ptsi.x+ 2, ptsi.y- 2), cvPoint(ptsi.x- 2, ptsi.y+ 2), CV_RGB(0, 0, 255); 55. resi = 3; 56. 57. 58. 59. /生成 2 维随机训练数据,并将其值放在 CvPoint 数据类型的数组 pts 中。 60. 61. / (3)学习数据的显示 62. cvNamedWindow(“SVM“, CV_WINDOW_AUTOSIZE); 63. cvShowImage(“SVM“, img); 64. cvWaitKey(0); 65. 66. / (4)学习参数的生成 67. for (i= 0; i s; i+) 68. datai* 2 = float (ptsi.x) / size; 69. datai* 2 + 1 = float (ptsi.y) / size; 70. 71. cvInitMatHeader( 72. cvInitMatHeader( 73. criteria= cvTermCriteria(CV_TERMCRIT_EPS, 1000, FLT_EPSILON); 74. param= CvSVMParams (CvSVM:C_SVC, CvSVM:RBF, 10.0, 8.0, 1.0, 10.0, 0.5, 0.1, NULL, criteria); 75. /* 76. SVM 种类:CvSVM:C_SVC 77. Kernel 的种类:CvSVM:RBF 78. degree:10.0(此次不使用) 79. gamma:8.0 80. coef0:1.0(此次不使用) 81. C:10.0 82. nu:0.5 (此次不使用) 83. p: 0.1(此次不使用) 84. 然后对训练数据正规化处理,并放在 CvMat 型的数组里。 85. */ 86. 87. 88. /(5)SVM 学习 89. svm.train(/ 90. / 利用训练数据和确定的学习参数,进行 SVM 学习 91. 92. / (6)学习结果的绘图 93. for (i= 0; i size; i+) 94. for (j= 0; j size; j+) 95. CvMat m; 96. float ret = 0.0; 97. float a = float (j) / size, float (i) / size ; 98. cvInitMatHeader( 99. ret= svm.predict( 100. switch (int) ret) 101. case 1: 102. rcolor= CV_RGB(100, 0, 0); 103. break; 104. case 2: 105. rcolor= CV_RGB(0, 100, 0); 106. break; 107. case 3: 108. rcolor= CV_RGB(0, 0, 100); 109. break; 110. 111. cvSet2D(img, i, j, rcolor); 112. 113. 114. /为了显示学习结果,通过输入图像区域的所有像素(特征向量) 并进行分类。然后对输入 像素用所属等级的颜色绘图。 115. 116. / (7)训练数据的再绘制 117. for (i= 0; i s; i+) 118. CvScalar rcolor; 119. switch (resi) 120. case 1: 121. rcolor= CV_RGB(255, 0, 0); 122. break; 123. case 2: 124. rcolor= CV_RGB(0, 255, 0); 125. break; 126. case 3: 127. rcolor= CV_RGB(0, 0, 255); 128. break; 129. 130. cvLine(img, cvPoint(ptsi.x- 2, ptsi.y- 2), cvPoint(ptsi.x+ 2, ptsi.y+ 2), rcolor); 131. cvLine(img, cvPoint(ptsi.x+ 2, ptsi.y- 2), cvPoint(ptsi.x- 2, ptsi.y+ 2), rcolor); 132. 133. /将训练数据在结果图像上重复的绘制出来。 134. 135. / (8)支持向量的绘制 136. sv_num= svm.get_support_vector_count(); 137. for (i= 0; i sv_num; i+) 138. support = svm.get_support_vector(i); 139. cvCircle(img, cvPoint(int) (support0 * size), (int) (support1 * size), 5, CV_RGB(200, 200, 200); 140. 141. /用白色的圆圈对支持向量作标记。 142. 143. / (9)图像的显示 144. cvNa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025福建漳州市国有资本运营集团有限公司招聘8人备考题库附答案详解(突破训练)
- 2025中国航天科工集团第三研究院校园招聘20人备考题库含答案详解ab卷
- 2026中储粮集团公司西安分公司招聘备考题库(43人)附答案详解(b卷)
- 2025年湖南怀化辰溪县文旅发展投资有限公司招聘工作人员备考题库(含答案详解)
- 2024-2026四川成都益民集团所属企业管培生招聘5人备考题库及答案详解(夺冠)
- 2025四川雅安汉源县财政局汉源县属国有企业招聘工作人员20人备考题库附答案详解(达标题)
- 2025中国人民保险集团股份有限公司楚雄州分公司招聘30人备考题库完整参考答案详解
- 2025湖北襄阳高新城乡基础设施建设维护有限公司招聘拟聘备考题库及1套参考答案详解
- 医疗废物处理中的环保税政策与成本优化策略
- 卧床病人护理:预防并发症与舒适管理
- 土方卸点合同协议
- 《营销传播策略》课件
- 2025年特殊教育教师线上培训心得体会
- 河北承德市隆化县“4·8”养老院火灾事故案例学习警示教育
- 2025年上海虹口区高三二模英语卷试题及答案详解
- 2024-2025统编版(2024)初中道德与法治七年级上册期末考试测试卷及答案(共3套)
- 核心素养导向的课堂教学余文森
- 2024年秋季新苏教版一年级上册数学教学课件 第五单元 第1课时 认识11~19 8.8
- 输尿管镜碎石取石术护理
- 具有良好的商业信誉和健全的财务会计制度
- T-YNESS 003-2024 工业企业环境风险双重预防机制建设技术指南 污染源辨识与分级
评论
0/150
提交评论