



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1./利用SVMi昆決2維空間向量的3級分類問題2.3.#include "stdafx.h"4.5.#include "cv.h"6.#include "highgui.h"7.8.#include <ML.H>9.#include <TIME.H>10.11.#include <CTYPE.H>12.13.#include <IOSTREAM>14.using namespace std;15.16.int main( int argc, char *argv)17.18.int s
2、ize = 400;/圖像的長度和寬度19.const int s = 100;/試驗點個數(shù)(可更改! !)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
3、;30.CvScalar rcolor;31.const float *support;32./ (1)圖像區(qū)域的確保和初始化33.img= cvCreateImage(cvSize(size, size), IPL_DEPTH_8U, 3);34.cvZero(img);35./確保畫像區(qū)域,并清0(用黑色作初始化處理)。36.37./ (2) 學習數(shù)據(jù)的生成38.for (i= 0; i< s; i+) 39.ptsi.x= cvRandInt(&rng) % size;/ 用隨機整數(shù)賦值40.ptsi.y= cvRandInt(&rng) % size;41.if
4、(ptsi.y> 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, cvP
5、oint(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(
6、img, cvPoint(ptsi.x+ 2, ptsi.y- 2), cvPoint(ptsi.x- 2, ptsi.y+ 2), CV_RGB(0, 0, 255);55.resi = 3;9./生成2維隨機訓練數(shù)據(jù),并將其值放在CvPoint數(shù)據(jù)類型的數(shù)組pts 中。60.61./ (3) 學習數(shù)據(jù)的顯示62.cvNamedWindow( "SVM”, CV_WINDOW_AUTOSIZE);63.cvShowImage( "SVM”, img);64.cvWaitKey(0);65.66./ (4) 學習參數(shù)的生成67.for (i= 0; i&
7、lt; s; i+) 68.datai* 2 =float (ptsi.x) / size;69.datai* 2 + 1 =float (ptsi.y) / size;70.71.cvInitMatHeader(&data_mat, s, 2, CV_32FC1, data);72.cvInitMatHeader(&res_mat, s, 1, CV_32SC1, res);73.criteria= cvTermCriteria(CV_TERMCRIT_EPS, 1000, FLT_EPSILON);74.param= CvSVMParams (CvSVM:C_SVC, Cv
8、SVM:RBF, 10.0, 8.0, 1.0, 10.0, 0.5,0.1, NULL, criteria);75./*76.SVM種類:CvSVM:C_SVC77.Kernel的種類:CvSVM:RBF78.degree: 10.0 (此次不使用)79.gamma: 8.080.coef0: 1.0 (此次不使用)00020
9、.121.122.123.C: 10.0nu : 0.5 (此次不使用)p: 0.1 (此次不使用)然后對訓練數(shù)據(jù)正規(guī)化處理,并放在CvMat型的數(shù)組里*/ (5)SVM 學習svm.train(&data_mat, &res_mat, NULL, NULL, param);/ / 利用訓練數(shù)據(jù)和確定的學習參數(shù),進行SVM學習/ (6)學習結果的繪圖for (i= 0; i< size; i+) for (j= 0; j< size; j+) CvMat m;float ret = 0.0;float a = float (j) / size, float (i)
10、/ size ;cvInitMatHeader(&m, 1,2, CV_32FC1, a);ret= svm.predict(&m);switch ( int ) ret) case 1:rcolor= CV_RGB(100, 0, 0);break ;case 2:rcolor= CV_RGB(0, 100, 0);break ;case 3:rcolor= CV_RGB(0, 0, 100);break ;cvSet2D(img, i, j, rcolor);/為了顯示學習結果,通過輸入圖像區(qū)域的所有像素(特征向量)并進行分類。然后對輸入像素用所屬等級的顏色繪圖。/ (7)
11、 訓練數(shù)據(jù)的再繪制for (i= 0; i< s; i+) CvScalar rcolor;switch (resi) case 1:rcolor= CV_RGB(255, 0, 0);break ;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);13
12、1. cvLine(img, cvPoint(ptsi.x+ 2, ptsi.y- 2), cvPoint(ptsi.x- 2, ptsi.y+ 2), rcolor);132. 133. /將訓練數(shù)據(jù)在結果圖像上重復的繪制出來。134.134. / (8) 支持向量的繪制135. sv_num= svm.get_support_vector_count();136. for (i= 0; i< sv_num; i+) 137. support = svm.get_support_vector(i);int ) (support1 *138. cvCircle(img, cvPoint(int ) (support0 * size),(size), 5, CV_RGB(200, 200, 200);139. 140. /用白色的圓圈對支持向量作標記。142.141. / (9) 圖像的顯示142. cvNamedWindow( "SVM",
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 聯(lián)合國國際合同使用電子通信公約
- 貨物運輸保險合同書
- 舞蹈教師全職崗位聘用合同
- 泉州工程職業(yè)技術學院《工程美學基礎》2023-2024學年第二學期期末試卷
- 內蒙古美術職業(yè)學院《數(shù)據(jù)挖掘分析課程設計》2023-2024學年第二學期期末試卷
- 西安電力高等專科學?!断冗M加工理論》2023-2024學年第二學期期末試卷
- 福州職業(yè)技術學院《移動媒體營銷》2023-2024學年第二學期期末試卷
- 7《靜夜思》(教學設計)-2023-2024學年統(tǒng)編版語文一年級下冊
- 青島濱海學院《地圖學與遙感》2023-2024學年第二學期期末試卷
- 紹興文理學院《微處理器原理》2023-2024學年第二學期期末試卷
- 保險產(chǎn)說會(養(yǎng)老主題)課件
- 風景園林工程初步設計文件編制深度規(guī)定
- 六年級心理健康導學案-10真正的朋友 |大象版
- 大專建筑工程畢業(yè)論文6000字
- 【古鎮(zhèn)旅游發(fā)展研究國內外文獻綜述3200字】
- SolidWorks全套入門教程
- 企業(yè)財務會計(第二版)高職PPT完整全套教學課件
- 3dsMax20223維動畫制作標準教程PPT完整版全套教學課件
- NXT上的PoP貼裝課件
- 2023-2024蘇教版小學數(shù)學5五年級下冊(全冊)教案設計
- 批評他人發(fā)言稿(通用12篇)
評論
0/150
提交評論