• 大小: 20.99MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-06-15
  • 语言: 其他
  • 标签: OpenCV  ANN  

资源简介

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 < test_num)
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 << “创建文件失败!“ << endl;
getchar();
}
ftxt << text << endl;
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.embed.manifest
     文件         472  2015-06-15 21:03  evalueOCR\evalueOCR\Debug\evalueOCR.exe.embed.manifest.res
     文件         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\link.command.1.tlog
     文件        7196  2015-06-15 20:35  evalueOCR\evalueOCR\Debug\evalueOCR.tlog\link.read.1.tlog
     文件         886  2015-06-15 20:35  evalueOCR\evalueOCR\Debug\evalueOCR.tlog\link.write.1.tlog
     文件         208  2015-06-15 21:03  evalueOCR\evalueOCR\Debug\evalueOCR_manifest.rc
     文件           2  2015-06-18 09:29  evalueOCR\evalueOCR\Debug\link-cvtres.read.1.tlog
............此处省略4671个文件信息

评论

共有 条评论