91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 6KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-05-14
  • 語言: C/C++
  • 標(biāo)簽: Opencv??SVM??

資源簡介

程序測試環(huán)境 VS2013+Opencv2.4.12 遍歷文件夾下所有手寫數(shù)字圖片 處理后壓如堆棧 最后用SVM進(jìn)行分類識(shí)別

資源截圖

代碼片段和文件信息

/*************************************
本程序編寫測試環(huán)境:VS2013+Opencv2.4.12
**************************************/



#include?
#include?
#include?
#include?
#include?

using?namespace?cv;
using?namespace?std;


void?HelpTextshow();

Mat?formatImagesForANN(const?vector?&data);//將每幅圖像展成一行
void?SetPredictResult(const?string?filename?vector&?PredictResult);//根據(jù)文件名設(shè)置每幅圖像的預(yù)測輸出?

float?RightRate(Mat&?inputImage?vector?&Tfilenames);//計(jì)算正確率的函數(shù)

int?main()
{
HelpTextshow();
cout?<
char?flag;
cin?>>?flag;
while?(1)
{
if?(flag?==?‘y‘?||?flag?==?‘Y‘)
{
cout?< break;
}
else?if?(flag?==?‘n‘?||?flag?==?‘N‘)
{
return?0;
}
else
continue;
}

//SVM?訓(xùn)練部分---------------------------------------------
//用于存儲(chǔ)訓(xùn)練的數(shù)據(jù)
cv::Directory?TrainDir;//用于遍歷路徑下文件的類
string?path1?=?“D:/train“;//訓(xùn)練樣本所在文件夾
string?exten1?=?“*.bmp“;//訓(xùn)練樣本的后綴名
bool?addPath1?=?true;//true;??//是true則函數(shù)返回文件絕對(duì)路徑和文件名,是false則返回文件名

vector?Train_pathnames?=?TrainDir.GetListFiles(path1?exten1?addPath1);//存儲(chǔ)所有待訓(xùn)練樣本的路徑+文件名
vector?Train_filenames?=?TrainDir.GetListFiles(path1?exten1?false);//存儲(chǔ)所有待訓(xùn)練樣本的文件名?用于分配ANN-MLP的預(yù)測輸出
/* cout?< for?(int?i?=?0;?i? cout?<
vector?Image;//用于存儲(chǔ)所有的待訓(xùn)練樣本
vector?PredictResult;//用于存儲(chǔ)待訓(xùn)練樣本的預(yù)測輸出
Image.clear();
PredictResult.clear();

//遍歷目標(biāo)文件夾,讀入所有待訓(xùn)練樣本,
for?(int?i?=?0;?i? {
Image.push_back(imread(Train_pathnames[i]?0));//將待訓(xùn)練樣本壓入Image
// imshow(filenames[i]?Image[i]);
// cout?< SetPredictResult(Train_filenames[i]?PredictResult);//設(shè)置存入的圖像的對(duì)應(yīng)的預(yù)測輸出
}

Mat?data?=?formatImagesForANN(Image);//將待訓(xùn)練圖像展成一行存儲(chǔ)到data

Mat?TrainResultTemp(PredictResult);//將對(duì)應(yīng)預(yù)測輸出存儲(chǔ)到Mat型中
Mat?TrainResult(static_cast(Train_pathnames.size())?1CV_32FC1);
TrainResultTemp.reshape(1?static_cast(Train_pathnames.size())).convertTo(TrainResultCV_32FC1);
// cout?<<“*********************************************“<
CvSVMParams?params;
params.svm_type?=?SVM::C_SVC;
params.C?=?0.1;
params.kernel_type?=?SVM::LINEAR;
params.term_crit?=?TermCriteria(CV_TERMCRIT_ITER?(int)1e7?1e-6);

//------------------------?訓(xùn)練SVM----------------------------------------------------
cout?< CvSVM?svm;
svm.train(data?TrainResult?Mat()?Mat()?params);
cout?<


//測試識(shí)別部分 ---------------------------------------------------------------
//用于存儲(chǔ)測試的數(shù)據(jù)
cv::Directory?TestDir;//用于遍歷路徑下文件的類
string?path2?=?“D:/test“;//測試樣本所在文件夾
string?exten2?=?“*.bmp“;//測試樣本的后綴名
bool?addP

評(píng)論

共有 條評(píng)論