資源簡介
OpenCV ANN 神經網絡 數字識別 http://blog.csdn.net/zwhlxl/article/details/46605507
交叉訓練,特征維度65,網絡層數10
正確率1.000000
交叉訓練,特征維度65,網絡層數20
正確率1.000000
交叉訓練,特征維度65,網絡層數30
正確率1.000000
交叉訓練,特征維度65,網絡層數40
正確率0.990000
代碼片段和文件信息
#include?“stdafx.h“
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
using?namespace?cv;
using?namespace?std;
#define?HORIZONTAL????1
#define?VERTICAL????0
CvANN_MLP??ann;
const?char?strCharacters[]?=?{?‘0‘‘1‘‘2‘‘3‘‘4‘‘5‘\
‘6‘‘7‘‘8‘‘9‘};
const?int?numCharacter?=?10;?
const?int?numNeurons?=?40;
const?int?predictSize?=?10;
void?generateRandom(int?n?int?test_num?int?min?int?max?vector*mark_samples)
{
int?range?=?max?-?min;
int?index?=?rand()?%?range?+?min;
if?(mark_samples->at(index)?==?0)
{
mark_samples->at(index)?=?1;
n++;
}
if?(n? generateRandom(n?test_num?min?max?mark_samples);
}
vector?getFiles(const?string?&folder
const?bool?all?/*?=?true?*/)?{
vector?files;
list?subfolders;
subfolders.push_back(folder);
while?(!subfolders.empty())?{
string?current_folder(subfolders.back());
if?(*(current_folder.end()?-?1)?!=?‘/‘)?{
current_folder.append(“/*“);
}
else?{
current_folder.append(“*“);
}
subfolders.pop_back();
struct?_finddata_t?file_info;
long?file_handler?=?_findfirst(current_folder.c_str()?&file_info);
while?(file_handler?!=?-1)?{
if?(all?&&
(!strcmp(file_info.name?“.“)?||?!strcmp(file_info.name?“..“)))?{
if?(_findnext(file_handler?&file_info)?!=?0)?break;
continue;
}
if?(file_info.attrib?&?_A_SUBDIR)?{
//?it‘s?a?sub?folder
if?(all)?{
//?will?search?sub?folder
string?folder(current_folder);
folder.pop_back();
folder.append(file_info.name);
subfolders.push_back(folder.c_str());
}
}
else?{
//?it‘s?a?file
string?file_path;
//?current_folder.pop_back();
file_path.assign(current_folder.c_str()).pop_back();
file_path.append(file_info.name);
files.push_back(file_path);
}
if?(_findnext(file_handler?&file_info)?!=?0)?break;
}??//?while
_findclose(file_handler);
}
return?files;
}
void?AppendText(string?filename?string?text)
{
fstream?ftxt;
ftxt.open(filename?ios::out?|?ios::app);
if?(ftxt.fail())
{
cout?<“創建文件失敗!“?< getchar();
}
ftxt?< ftxt.close();
}
//?!獲取垂直和水平方向直方圖
Mat?ProjectedHistogram(Mat?img?int?t)
{
int?sz?=?(t)???img.rows?:?img.cols;
Mat?mhist?=?Mat::zeros(1?sz?CV_32F);
for?(int?j?=?0;?j Mat?data?=?(t)???img.row(j)?:?img.col(j);
mhist.at(j)?=?countNonZero(data); //統計這一行或一列中,非零元素的個數,并保存到mhist中
}
//Normalize?histogram
double?min?max;
minMaxLoc(mhist?&min?&max);
if?(max>0)
mhist.convertTo(mhist?-1?1.0f?/?max?0);//用mhist直方圖中的最大值,歸一化直方圖
return?mhist;
}
Mat?features(Mat?in?int?sizeData)
{
//Histogram?features
Mat?vhist?=?ProjectedHistogram(in?VERTICAL);
Mat?hhist?=?Projected
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-06-18?16:13??evalueOCR\
?????目錄???????????0??2015-06-15?20:00??evalueOCR\.vs\
?????目錄???????????0??2015-06-15?20:00??evalueOCR\.vs\evalueOCR\
?????目錄???????????0??2015-06-15?20:00??evalueOCR\.vs\evalueOCR\v14\
?????文件???????34304??2015-06-18?16:13??evalueOCR\.vs\evalueOCR\v14\.suo
?????目錄???????????0??2015-06-16?18:30??evalueOCR\Debug\
?????文件??????186368??2015-06-18?09:29??evalueOCR\Debug\evalueOCR.exe
?????文件?????2708044??2015-06-18?09:29??evalueOCR\Debug\evalueOCR.ilk
?????文件?????4624384??2015-06-18?09:29??evalueOCR\Debug\evalueOCR.pdb
?????目錄???????????0??2015-06-18?16:05??evalueOCR\evalueOCR\
?????目錄???????????0??2015-06-18?09:29??evalueOCR\evalueOCR\Debug\
?????文件???????30528??2015-06-18?09:29??evalueOCR\evalueOCR\Debug\CL.read.1.tlog
?????文件????????1284??2015-06-18?09:29??evalueOCR\evalueOCR\Debug\CL.write.1.tlog
?????文件????????1950??2015-06-18?09:29??evalueOCR\evalueOCR\Debug\cl.command.1.tlog
?????文件?????????406??2015-06-15?21:03??evalueOCR\evalueOCR\Debug\evalueOCR.exe.em
?????文件?????????472??2015-06-15?21:03??evalueOCR\evalueOCR\Debug\evalueOCR.exe.em
?????文件?????????381??2015-06-18?09:29??evalueOCR\evalueOCR\Debug\evalueOCR.exe.intermediate.manifest
?????文件??????????91??2015-06-18?09:29??evalueOCR\evalueOCR\Debug\evalueOCR.lastbuildstate
?????文件????????3197??2015-06-18?09:29??evalueOCR\evalueOCR\Debug\evalueOCR.log
?????文件??????819875??2015-06-18?09:29??evalueOCR\evalueOCR\Debug\evalueOCR.obj
?????文件?????1179648??2015-06-15?21:03??evalueOCR\evalueOCR\Debug\evalueOCR.pch
?????目錄???????????0??2015-06-15?20:35??evalueOCR\evalueOCR\Debug\evalueOCR.tlog\
?????文件???????39556??2015-06-15?20:35??evalueOCR\evalueOCR\Debug\evalueOCR.tlog\CL.read.1.tlog
?????文件????????1648??2015-06-15?20:35??evalueOCR\evalueOCR\Debug\evalueOCR.tlog\CL.write.1.tlog
?????文件????????1910??2015-06-15?20:35??evalueOCR\evalueOCR\Debug\evalueOCR.tlog\cl.command.1.tlog
?????文件?????????197??2015-06-15?20:35??evalueOCR\evalueOCR\Debug\evalueOCR.tlog\evalueOCR.lastbuildstate
?????文件????????3224??2015-06-15?20:35??evalueOCR\evalueOCR\Debug\evalueOCR.tlog\li
?????文件????????7196??2015-06-15?20:35??evalueOCR\evalueOCR\Debug\evalueOCR.tlog\li
?????文件?????????886??2015-06-15?20:35??evalueOCR\evalueOCR\Debug\evalueOCR.tlog\li
?????文件?????????208??2015-06-15?21:03??evalueOCR\evalueOCR\Debug\evalueOCR_manifest.rc
?????文件???????????2??2015-06-18?09:29??evalueOCR\evalueOCR\Debug\li
............此處省略4671個文件信息
- 上一篇:基于opencv的性別識別
- 下一篇:stm32f0官方標準庫
評論
共有 條評論