opencv c YALE資料集驗證svm

2021-10-12 22:05:21 字數 2488 閱讀 8331

#include

#include

#include

#include

#include

#include

#include

#include

using namespace std;

using namespace cv;

using namespace ml;

ostringstream oss;

int num =0;

mat dealimage;

mat src;

intmain()

//資料和標籤轉變下

mat(trainingdata)

.copyto

(traindata)

;//複製

traindata.

convertto

(traindata, cv_32fc1)

;//更改資料的型別,必要,不然會出錯

mat(labels)

.copyto

(clas)

;//複製

//******************************=建立svm模型******************************=

// 建立分類器並設定引數

ptr svm_params = svm:

:create()

; svm_params->

settype

(svm:

:c_svc)

;//c_svc用於分類,c_svr用於回歸

svm_params->

setkernel

(svm:

:linear)

;//linear線性核函式

svm_params->

setdegree(0

);//核函式中的引數degree,針對多項式核函式;

svm_params->

setgamma(1

);//核函式中的引數gamma,針對多項式/rbf/sigmoid核函式;

svm_params->

setcoef0(0

);//核函式中的引數,針對多項式/sigmoid核函式;

svm_params->

setc(1

);//svm最優問題引數,設定c-svc,eps_svr和nu_svr的引數;

svm_params->

setnu(0

);//svm最優問題引數,設定nu_svc, one_class 和nu_svr的引數;

svm_params->

setp(0

);//svm最優問題引數,設定eps_svr 中損失函式p的值.

//結束條件,即訓練1000次或者誤差小於0.01結束

svm_params->

settermcriteria

(termcriteria

(termcriteria:

:max_iter + termcriteria:

:eps,

1000

,0.01))

;//訓練資料和標籤的結合

ptr tdata = traindata:

:create

(traindata, row_sample, clas)

;// 訓練分類器

svm_params->

train

(tdata)

;//訓練

cout <<

"訓練好了!!!"

<< endl;

//******************************=**部分******************************=

mat src =

imread

("yale/f11/11_s11.bmp",0

);imshow

("原影象"

, src)

; mat input;

src = src.

reshape(1

,1);

//輸入序列化

input.

push_back

(src)

; input.

convertto

(input, cv_32fc1)

;//更改資料的型別,必要,不然會出錯

float r = svm_params->

predict

(input)

;//對所有行進行**

cout << r << endl;

waitkey(0

);int tt=0;

for(

int taga=

1;taga<

16;taga++

)float m=

float

(tt)/15

;cout

}

需要資料集點這裡

C Excel資料驗重及Table資料驗重

最近在做匯入excel資料的時候,要檢驗資料是否重複 1 要檢驗excel資料本身是否有重複?2 excel中的資料是否與資料庫中的資料重複?region 記錄excel中的重複列 記錄excel中的重複列 需要獲取重複列的表 提示重複資訊 private string getdistincttab...

mysql 繼承 MySQL字符集繼承關係驗證

1 建立資料庫時不指定字符集會繼承伺服器字符集 server characterset utf8 db characterset latin1 mysqlgt show g 1 建立資料庫時不指定字符集會繼承伺服器字符集 server characterset utf8 db characterse...

AngularJS快速入門指南14 資料驗證

angularjs表單和控制項可以對使用者輸入的資料進行驗證。angularjs表單和控制項可以提供資料驗證服務,並對不合法的資料給出提示資訊。請注意任何情況下都不能僅靠客戶端的資料驗證,服務端資料驗證也是必須的。doctype html html script src script body h2...