資源簡介
比較簡單的基于模板匹配的英文字母識別程序,可以修改為數字識別,希望對大家有所幫助。謝謝下載。

代碼片段和文件信息
#include?“stdafx.h“
#include?“cdib.h“
#include?“windowsx.h“
#define?WIDTHBYTES(bits)????(((bits)?+?31)?/?32?*?4)?
CDib::CDib()
{
size=0;
}
CDib::~CDib()
{
????GlobalFreePtr(m_pBitmapInfo);
}
void?CDib::LoadFile(const?char*?dibFileName)
{
???strcpy(m_fileNamedibFileName);
????CFile?dibFile(m_fileName?CFile::modeRead);
????dibFile.Read((void*)&bitmapFileHeadersizeof(BITMAPFILEHEADER));
????if?(bitmapFileHeader.bfType?==?0x4d42)
????{
????????DWORD?fileLength?=?dibFile.GetLength();????
?????????size?=?fileLength?-sizeof(BITMAPFILEHEADER);
?????????pDib?=(BYTE*)GlobalAllocPtr(GMEM_MOVEABLE?size);
????????dibFile.Read((void*)pDib?size);
????????dibFile.Close();
????????m_pBitmapInfo?=?(BITMAPINFO*)?pDib;
????????m_pBitmapInfoHeader?=?(BITMAPINFOHEADER*)?pDib;
????????m_pRGB?=?(RGBQUAD*)(pDib?+
m_pBitmapInfoHeader->biSize);
????????int?m_numberOfColors?=?GetNumberOfColors();
????????if?(m_pBitmapInfoHeader->biClrUsed?==?0)
????????????m_pBitmapInfoHeader->biClrUsed?=
????m_numberOfColors;
????????DWORD?colorTableSize?=?m_numberOfColors?*
????????????sizeof(RGBQUAD);
????????m_pData?=?pDib?+?m_pBitmapInfoHeader->biSize
????????????+?colorTableSize;
if?(m_pRGB?==?(RGBQUAD*)m_pData)?//?No?color?table
m_pRGB?=?NULL;
????????m_pBitmapInfoHeader->biSizeImage?=?GetSize();
m_valid?=?TRUE;
????}????
????else
????{
????????m_valid?=?FALSE;
????????AfxMessageBox(“This?isn‘t?a?bitmap?file!“);
????}
}
BOOL?CDib::IsValid()
{
????return?m_valid;
}
????????
char*?CDib::GetFileName()
{
????return?m_fileName;
}
????????
UINT?CDib::GetWidth()
{
????return?(UINT)?m_pBitmapInfoHeader->biWidth;
}
????????
UINT?CDib::GetHeight()
{
????return?(UINT)?m_pBitmapInfoHeader->biHeight;
}
????????
DWORD?CDib::GetSize()
{
????if?(m_pBitmapInfoHeader->biSizeImage?!=?0)
????????return?m_pBitmapInfoHeader->biSizeImage;
else
????{
????????DWORD?height?=?(DWORD)?GetHeight();
????????DWORD?width?=?(DWORD)?GetWidth();
????????return?height?*?width;
????}
}
void?CDib::SetWidth(UINT?width)
{
m_pBitmapInfoHeader->biWidth=width;
}
void?CDib::SetHeight(UINT?height)
{
m_pBitmapInfoHeader->biHeight=height;
}
UINT?CDib::GetNumberOfColors()
{
int?numberOfColors;
????if?((m_pBitmapInfoHeader->biClrUsed?==?0)?&&
??????????(m_pBitmapInfoHeader->biBitCount?9))
{
switch?(m_pBitmapInfoHeader->biBitCount)
{
????case?1:?numberOfColors?=?2;?break;
????case?4:?numberOfColors?=?16;?break;
????case?8:?numberOfColors?=?256;
}
}
????else
numberOfColors?=?(int)?m_pBitmapInfoHeader->biClrUsed;
????return?numberOfColors;
}
????
BYTE*?CDib::GetData()
{
????return?m_pData;
}
RGBQUAD*?CDib::GetRGB()
{
????return?m_pRGB;
}
BITMAPINFO*?CDib::GetInfo()
{
????return?m_pBitmapInfo;
}
WORD?CDib::PaletteSize(LPBYTE?lpDIB)?
{?
????return?(DIBNumColors(lpDIB)?*?sizeof(RGBTRIPLE));?
}?
WORD?CDib::DIBNumColors(LPBYTE?lpDIB)?
{?
????WORD?wBitC
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????9545??2012-02-27?16:20??識別程序\bpnet.txt
?????文件??????86016??2012-02-27?16:14??識別程序\DSPLIT.exe
?????文件?????150739??2012-03-04?13:34??識別程序\lmse.txt
?????文件?????962612??2012-02-27?16:14??識別程序\MFC42D.DLL
?????文件?????974901??2012-02-27?16:14??識別程序\MFC42UD.DLL
?????文件?????303157??2012-02-27?16:14??識別程序\MFCD42D.DLL
?????文件?????311350??2012-02-27?16:14??識別程序\MFCD42UD.DLL
?????文件??????61493??2012-02-27?16:14??識別程序\MFCN42D.DLL
?????文件??????61494??2012-02-27?16:14??識別程序\MFCN42UD.DLL
?????文件?????827445??2012-02-27?16:14??識別程序\MFCO42D.DLL
?????文件?????831542??2012-02-27?16:14??識別程序\MFCO42UD.DLL
?????文件??????94285??2012-02-27?16:14??識別程序\MSVCIRTD.DLL
?????文件?????516173??2012-02-27?16:14??識別程序\MSVCP60D.DLL
?????文件?????434252??2012-02-27?16:14??識別程序\MSVCRTD.DLL
?????文件??????58680??2012-02-27?16:14??識別程序\picture.bmp
?????文件???????1802??2012-02-27?16:20??識別程序\quanzhi.txt
?????文件?????271240??2012-03-03?23:22??識別程序\template.dat
?????文件???????3589??2012-03-05?16:31??識別程序\分類程序\Cdib.cpp
?????文件????????844??2012-02-27?16:14??識別程序\分類程序\Cdib.h
?????文件???????1795??2012-03-05?16:32??識別程序\分類程序\Classification.cpp
?????文件????????765??2012-03-04?13:43??識別程序\分類程序\Classification.h
?????文件??????12540??2012-03-03?16:10??識別程序\分類程序\Debug\BpNet.obj
?????文件???????6737??2012-03-03?16:10??識別程序\分類程序\Debug\BpNet.sbr
?????文件??????16809??2012-03-05?16:31??識別程序\分類程序\Debug\Cdib.obj
?????文件??????18903??2012-03-05?16:31??識別程序\分類程序\Debug\Cdib.sbr
?????文件???????6565??2012-03-05?16:32??識別程序\分類程序\Debug\Classification.obj
?????文件???????2666??2012-03-05?16:32??識別程序\分類程序\Debug\Classification.sbr
?????文件??????13791??2012-03-03?16:10??識別程序\分類程序\Debug\DlgClassify.obj
?????文件???????7495??2012-03-03?16:10??識別程序\分類程序\Debug\DlgClassify.sbr
?????文件??????13088??2012-03-03?16:10??識別程序\分類程序\Debug\Dlgdisplay.obj
............此處省略98個文件信息
評論
共有 條評論