资源简介
比较简单的基于模板匹配的英文字母识别程序,可以修改为数字识别,希望对大家有所帮助。谢谢下载。
代码片段和文件信息
#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个文件信息
相关资源
- 3种模板匹配法实现的手写数字识别
- 车牌识别课程设计,能运行,模板匹
- 基于欧式距离模板匹配的识别手写体
- 详解Halcon定位与模板匹配
- 基于OpenCV多目标的模板匹配算法
- 数字和英文字母识别
- HALCON模板匹配源代码
- 基于模板匹配和谷歌开源TESSERACT库的
- 英文字母识别数据集EnglishHand
- opencv金字塔模板匹配算法
- 车牌识别基于模板匹配和神经网络.
- 模板匹配算法实现
- 基于模板匹配的车牌识别系统实例9
- 模板匹配多目标检测快速金字塔
- 车牌字符库素材可用于模拟车牌、模
- halcon选择特定区域 模板匹配
- 模板匹配为基础的目标检测算法
- halcon ncc 模板匹配
- 遥感影像上面状道路的准自动提取算
- opencv 中模板匹配的完整
- 模板匹配可以平移缩放旋转多种匹配
- SSDA模板匹配算法
- 基于模板匹配的交通灯识
- SSDA 模板匹配算法PDF
- 基于模板匹配的字符识别
- 车牌模板匹配模板库包含第一位汉字
- 用于车牌识别的字符模板,数字,字
- Opencv打开电脑自带USB摄像头并调用模
- Halcon 基于相关性模板匹配(.hdev)
- 基于形状模板匹配(.hdev)
评论
共有 条评论