-
大小: 6.47MB文件類型: .zip金幣: 2下載: 0 次發(fā)布日期: 2023-09-26
- 語(yǔ)言: 其他
- 標(biāo)簽: opencv??印刷體??數(shù)字識(shí)別??
資源簡(jiǎn)介
用來(lái)對(duì)印刷體數(shù)字識(shí)別

代碼片段和文件信息
//#include?“stdafx.h“
#include?
#include?“opencv2/opencv.hpp“
#include?
using?namespace?std;
using?namespace?cv;
#define?SHOW_PROCESS?0
#define?ON_STUDY?0
class?NumTrainData
{
public:
NumTrainData()
{
memset(data?0?sizeof(data));
result?=?-1;
}
public:
float?data[64];
int?result;
};
vector?buffer;
int?featureLen?=?64;
void?swapBuffer(char*?buf)
{
char?temp;
temp?=?*(buf);
*buf?=?*(buf?+?3);
*(buf?+?3)?=?temp;
temp?=?*(buf?+?1);
*(buf?+?1)?=?*(buf?+?2);
*(buf?+?2)?=?temp;
}
void?GetROI(Mat&?src?Mat&?dst)
{
int?left?right?top?bottom;
left?=?src.cols;
right?=?0;
top?=?src.rows;
bottom?=?0;
//Get?valid?area
for?(int?i?=?0;?i {
for?(int?j?=?0;?j {
if?(src.at(i?j)?>?0)
{
if?(j if?(j>right)?right?=?j;
if?(i if?(i>bottom)?bottom?=?i;
}
}
}
//Point?center;
//center.x?=?(left?+?right)?/?2;
//center.y?=?(top?+?bottom)?/?2;
int?width?=?right?-?left;
int?height?=?bottom?-?top;
int?len?=?(width?
//Create?a?squre
dst?=?Mat::zeros(len?len?CV_8UC1);
//Copy?valid?data?to?squre?center
Rect?dstRect((len?-?width)?/?2?(len?-?height)?/?2?width?height);
Rect?srcRect(left?top?width?height);
Mat?dstROI?=?dst(dstRect);
Mat?srcROI?=?src(srcRect);
srcROI.copyTo(dstROI);
}
int?ReadTrainData(int?maxCount)
{
//Open?image?and?label?file
const?char?fileName[]?=?“../res/train-images.idx3-ubyte“;
const?char?labelFileName[]?=?“../res/train-labels.idx1-ubyte“;
ifstream?lab_ifs(labelFileName?ios_base::binary);
ifstream?ifs(fileName?ios_base::binary);
if?(ifs.fail()?==?true)
return?-1;
if?(lab_ifs.fail()?==?true)
return?-1;
//Read?train?data?number?and?image?rows?/?cols
char?magicNum[4]?ccount[4]?crows[4]?ccols[4];
ifs.read(magicNum?sizeof(magicNum));
ifs.read(ccount?sizeof(ccount));
ifs.read(crows?sizeof(crows));
ifs.read(ccols?sizeof(ccols));
int?count?rows?cols;
swapBuffer(ccount);
swapBuffer(crows);
swapBuffer(ccols);
memcpy(&count?ccount?sizeof(count));
memcpy(&rows?crows?sizeof(rows));
memcpy(&cols?ccols?sizeof(cols));
//Just?skip?label?header
lab_ifs.read(magicNum?sizeof(magicNum));
lab_ifs.read(ccount?sizeof(ccount));
//Create?source?and?show?image?matrix
Mat?src?=?Mat::zeros(rows?cols?CV_8UC1);
Mat?temp?=?Mat::zeros(8?8?CV_8UC1);
Mat?img?dst;
char?label?=?0;
Scalar?templateColor(255?0?255);
NumTrainData?rtd;
//int?loop?=?1000;
int?total?=?0;
while?(!ifs.eof())
{
if?(total?>=?count)
break;
total++;
cout?<
//Read?label
lab_ifs.read(&label?1);
label?=?label?+?‘0‘;
//Read?source?data
ifs.read((char*)src.data?rows?*?cols);
GetROI(src?dst);
#if(SHOW_PROCESS)
//Too?small?to?watch
img?=?Mat::zero
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-09-29?16:48??DigitReg\
?????目錄???????????0??2016-09-29?16:47??DigitReg\Debug\
?????文件??????106496??2016-01-10?19:04??DigitReg\Debug\DigitReg.exe
?????文件??????801816??2016-01-10?19:04??DigitReg\Debug\DigitReg.ilk
?????文件?????2026496??2016-01-10?19:04??DigitReg\Debug\DigitReg.pdb
?????目錄???????????0??2016-09-29?16:47??DigitReg\DigitReg\
?????目錄???????????0??2016-09-29?16:47??DigitReg\DigitReg\Debug\
?????文件????????1012??2016-01-09?22:27??DigitReg\DigitReg\Debug\DigitReg.Build.CppClean.log
?????文件????????1884??2016-01-10?19:04??DigitReg\DigitReg\Debug\DigitReg.log
?????目錄???????????0??2016-09-29?16:47??DigitReg\DigitReg\Debug\DigitReg.tlog\
?????文件???????34358??2016-01-10?19:04??DigitReg\DigitReg\Debug\DigitReg.tlog\CL.read.1.tlog
?????文件????????3246??2016-01-10?19:04??DigitReg\DigitReg\Debug\DigitReg.tlog\CL.write.1.tlog
?????文件?????????163??2016-01-10?19:04??DigitReg\DigitReg\Debug\DigitReg.tlog\DigitReg.lastbuildstate
?????文件????????3114??2016-01-10?19:04??DigitReg\DigitReg\Debug\DigitReg.tlog\cl.command.1.tlog
?????文件????????2532??2016-01-10?19:04??DigitReg\DigitReg\Debug\DigitReg.tlog\li
?????文件????????5790??2016-01-10?19:04??DigitReg\DigitReg\Debug\DigitReg.tlog\li
?????文件?????????868??2016-01-10?19:04??DigitReg\DigitReg\Debug\DigitReg.tlog\li
?????文件????????2579??2016-01-09?22:27??DigitReg\DigitReg\Debug\digit_recog.obj
?????文件????????2487??2016-01-09?22:27??DigitReg\DigitReg\Debug\test1.obj
?????文件????????2487??2016-01-09?22:27??DigitReg\DigitReg\Debug\test2.obj
?????文件??????358078??2016-01-10?19:04??DigitReg\DigitReg\Debug\test3.obj
?????文件????????2487??2016-01-10?10:33??DigitReg\DigitReg\Debug\test4.obj
?????文件??????814080??2016-01-10?19:04??DigitReg\DigitReg\Debug\vc120.idb
?????文件?????1241088??2016-01-10?19:04??DigitReg\DigitReg\Debug\vc120.pdb
?????文件????????5221??2016-01-09?15:46??DigitReg\DigitReg\DigitReg.vcxproj
?????文件????????1364??2016-01-09?15:46??DigitReg\DigitReg\DigitReg.vcxproj.filters
?????文件???????10858??2016-01-06?21:21??DigitReg\DigitReg\test.cpp
?????文件????????1767??2016-01-07?09:17??DigitReg\DigitReg\test1.cpp
?????文件????????2404??2016-01-08?21:06??DigitReg\DigitReg\test2.cpp
?????文件????????3572??2016-01-10?19:04??DigitReg\DigitReg\test3.cpp
?????文件?????????534??2016-01-10?10:33??DigitReg\DigitReg\test4.cpp
............此處省略3個(gè)文件信息
評(píng)論
共有 條評(píng)論