資源簡介
原理簡單介紹:使用OpenCV中svm訓(xùn)練英文字符圖片,進(jìn)而識別。
資源包括完整代碼,訓(xùn)練圖像,測試圖片

代碼片段和文件信息
#include?“stdafx.h“??
#include?“opencv2/opencv.hpp“??
#include?“windows.h“??
#include?“fstream“??
using?namespace?std;??
using?namespace?cv;??
int?_tmain(int?argc?_TCHAR*?argv[])??
{??
????vector?img_path;//輸入文件名變量?????
????vector?img_catg;??//標(biāo)簽????
????int?nLine?=?0;??????
????string?buf;??????
????ifstream?svm_data(?“E:\\研究生信息\\模式識別作業(yè)\\英文字母訓(xùn)練集\\char.txt“?);//訓(xùn)練樣本圖片的路徑都寫在這個(gè)txt文件中bat批處理??“D:\\nums\\hb.txt“
????unsigned?long?n;???????
????while(?svm_data?)//將訓(xùn)練樣本文件依次讀取進(jìn)來??????
????{??????
????????if(?getline(?svm_data?buf?)?)????//將輸入流svm_data中讀到的字符存入buf中??
????????{??????
????????????nLine?++;??????
????????????if(?nLine?%?2?==?0?)//注:奇數(shù)行是圖片全路徑,偶數(shù)行是標(biāo)簽???
????????????{??????
?????????????????img_catg.push_back(?atoi(?buf.c_str()?)?);??
?????????????????//atoi將字符串轉(zhuǎn)換成整型,標(biāo)志(01,2,...,9),注意這里至少要有兩個(gè)類別,否則會(huì)出錯(cuò)????
?????????????????//?函數(shù)聲明:const?char?*c_str();?c_str()函數(shù)返回一個(gè)指向正規(guī)字符串的指針?內(nèi)容與本字符串相同??
????????????}??????
????????????else??????
????????????{??????
????????????????img_path.push_back(?buf?);//圖像路徑??????
????????????}??????
????????}??????
????}??????
????svm_data.close();//關(guān)閉文件??????
????CvMat?*data_mat?*res_mat;??//定義樣本矩陣,類型矩陣????
????int?nImgNum?=?nLine?/?2;?//nImgNum:橫坐標(biāo)是樣本數(shù)量,只有文本行數(shù)的一半,另一半是標(biāo)簽????
?????????
????data_mat?=?cvCreateMat(?nImgNum?324?CV_32FC1?);??//樣本矩陣??
????//第二個(gè)參數(shù),即矩陣的列是由下面的descriptors的大小決定的,可以由descriptors.size()得到,??
????//且對于不同大小的輸入訓(xùn)練圖片,這個(gè)值是不同的????
????cvSetZero(?data_mat?);???????
????//類型矩陣存儲每個(gè)樣本的類型標(biāo)志??????
????res_mat?=?cvCreateMat(?nImgNum?1?CV_32FC1?);??????
????cvSetZero(?res_mat?);?????
???????
????IplImage*?src;??????
????IplImage*?trainImg=cvCreateImage(cvSize(2828)83);??
????//需要分析的圖片,這里默認(rèn)設(shè)定圖片是28*28大小,所以上面定義了324,如果要更改圖片大小,??
????//可以先用debug查看一下descriptors是多少,然后設(shè)定好再運(yùn)行??????
??????
????//處理HOG特征????
????for(?string::size_type?i?=?0;?i?!=?img_path.size();?i++?)??????
????{??????
????????????src=cvLoadImage(img_path[i].c_str()1);??????
????????????if(?src?==?NULL?)??????
????????????{??????
????????????????cout<<“?can?not?load?the?image:?“< ????????????????//continue;???
return?0;
????????????}??????
??????
????????????cout<<“?處理:?“< ?????????????????????
????????????cvResize(srctrainImg);?//讀取圖片,歸一化處理??????
????????????HOGDescriptor?*hog=new?HOGDescriptor(cvSize(2828)cvSize(1414)cvSize(77)cvSize(77)9);????????
????????????vectordescriptors;//存放結(jié)果,數(shù)組???????
????????????hog->compute(trainImg?descriptorsSize(11)?Size(00));?//Hog特征計(jì)算????????
????????????cout<<“HOG?dims:?“<riptors.size()< ????????????n=0;??????
????????????for(vector::iterator?iter=descriptors.begin();iter!=descriptors.end();iter++)?//迭代器?????
????????????{??????
????????????????cvmSet(data_matin*iter);//存儲HOG特征到data_mat矩陣中???
????????????????n++;??????
????????????}?????????
????????????cvmSet(?res_mat?i?0?img_catg[i]?);??????
??????????
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????3680??2016-08-24?11:46??測試集\a-21.bmp
?????文件???????3680??2016-08-24?11:45??測試集\a-22.bmp
?????文件???????3680??2016-08-24?11:45??測試集\a-23.bmp
?????文件???????3680??2016-08-24?11:45??測試集\a-24.bmp
?????文件???????3680??2016-08-24?11:45??測試集\a-25.bmp
?????文件???????7654??2016-07-30?10:10??測試集\a21.bmp
?????文件???????7654??2016-07-30?10:10??測試集\a22.bmp
?????文件???????7654??2016-07-30?10:10??測試集\a23.bmp
?????文件???????7654??2016-07-30?10:10??測試集\a24.bmp
?????文件???????7654??2016-07-30?10:10??測試集\a25.bmp
?????文件???????3680??2016-08-24?11:44??測試集\b-21.bmp
?????文件???????3680??2016-08-24?11:44??測試集\b-22.bmp
?????文件???????3680??2016-08-24?11:44??測試集\b-23.bmp
?????文件???????3680??2016-08-24?11:44??測試集\b-24.bmp
?????文件???????3680??2016-08-24?11:45??測試集\b-25.bmp
?????文件???????7654??2016-07-30?10:10??測試集\b21.bmp
?????文件???????7654??2016-07-30?10:10??測試集\b22.bmp
?????文件???????7654??2016-07-30?10:10??測試集\b23.bmp
?????文件???????7654??2016-07-30?10:10??測試集\b24.bmp
?????文件???????7654??2016-07-30?10:10??測試集\b25.bmp
?????文件???????7654??2016-07-30?10:10??測試集\c21.bmp
?????文件???????7654??2016-07-30?10:10??測試集\c22.bmp
?????文件???????7654??2016-07-30?10:10??測試集\c23.bmp
?????文件???????7654??2016-07-30?10:10??測試集\c24.bmp
?????文件???????7654??2016-07-30?10:10??測試集\c25.bmp
?????文件???????7654??2016-07-30?10:10??測試集\d21.bmp
?????文件???????7654??2016-07-30?10:10??測試集\d22.bmp
?????文件???????7654??2016-07-30?10:10??測試集\d23.bmp
?????文件???????7654??2016-07-30?10:10??測試集\d24.bmp
?????文件???????7654??2016-07-30?10:10??測試集\d25.bmp
............此處省略749個(gè)文件信息
評論
共有 條評論