资源简介
识别0-9十个数字,BP神经网络数字识别源代码
使用说明
第一步:训练网络。使用训练样本进行训练。(此程序中也可以不训练,因为笔者已经将训练好的网络参数保存起来了,读者使用时可以直接识别)
第二步:识别。首先,打开图像(256色);再次,进行归一化处理,点击“一次性处理”;最后,点击“R”或者使用菜单找到相应项来进行识别。识别的结果显示在屏幕上,同时也输出到文件result.txt中。
该系统的识别率一般情况下为90%。
此外,也可以单独对打开的图片一步一步进行图像预处理工作,但要注意,每一步工作只能执行一遍,而且要按顺序执行。
具体步骤为:“256色位图转为灰度图”-“灰度图二值化”-“去噪”-“倾斜校正”-“分割”-“标准化尺寸”-“紧缩重排”。
注意,待识别的图片要与win.dat和whi.dat位于同一目录,这两文件保存训练后网络的权值参数。
具体使用请参照书中说明。

代码片段和文件信息
// ChildView.cpp : implementation of the CChildView class
//
#include “stdafx.h“
#include “DigitRec.h“
#include “ChildView.h“
#include “INPUT1.h“
#include “mydiblib.h“
#include “Bp.h“
#include “DBpParamater.h“
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
void ThiningDIB(LPSTR lpDIBBits LONG lWidth LONG lHeight);
/////////////////////////////////////////////////////////////////////////////
// CChildView
CChildView::CChildView()
{
fileloaded=false;
gyhinfoinput=false;
gyhfinished=false;
m_hDIB=NULL;
}
CChildView::~CChildView()
{
}
BEGIN_MESSAGE_MAP(CChildViewCWnd )
//{{AFX_MSG_MAP(CChildView)
ON_WM_PAINT()
ON_COMMAND(IDmy_FILE_OPEN_BMP OnFileOpenBmp)
ON_COMMAND(IDmy_FILE_SAVE_BMP OnFileSaveBmp)
ON_COMMAND(IDmy_IMGPRC_SHRINK_ALIGN OnImgprcShrinkAlign)
ON_COMMAND(IDmy_IMGPRC_ALL OnImgprcAll)
ON_COMMAND(IDmy_IMGPRC_256ToGray OnIMGPRC256ToGray)
ON_COMMAND(IDmy_IMGPRC_DIVIDE OnImgprcDivide)
ON_COMMAND(IDmy_IMGPRC_TO_DIB_AND_SAVE OnImgprcToDibAndSave)
ON_COMMAND(IDmy_IMGPRC_REMOVE_NOISE OnImgprcRemoveNoise)
ON_COMMAND(IDmy_IMGPRC_STANDARIZE OnImgprcStandarize)
ON_COMMAND(IDmy_IMGPRC_THINNING OnImgprcThinning)
ON_COMMAND(IDmy_IMGPRC_ADJUST_SLOPE OnImgprcAdjustSlope)
ON_COMMAND(IDmy_IMGPRC_GrayToWhiteBlack OnIMGPRCGrayToWhiteBlack)
ON_COMMAND(IDmy_IMGPRC_SHARP OnImgprcSharp)
ON_COMMAND(IDmy_FILE_RE_LOAD_BMP OnFileReLoadBmp)
ON_COMMAND(ID_INPUT1 OnInputGuiyihuaInfo)
ON_COMMAND(IDmy_BPNET_TRAIN OnBpnetTrain)
ON_COMMAND(IDmy_BPNET_RECOGNIZE OnBpnetRecognize)
ON_COMMAND(ID_aver Onaver)
ON_COMMAND(ID_Gass OnGass)
ON_COMMAND(ID_Mid OnMid)
ON_COMMAND(IDmy_IMGPRC_EQUALIZE OnImgprcEqualize)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CChildView message handlers
BOOL CChildView::PreCreateWindow(CREATESTRUCT& cs)
{
if (!CWnd::PreCreateWindow(cs))
return FALSE;
cs.dwExstyle |= WS_EX_CLIENTEDGE;
cs.style &= ~WS_BORDER;
cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS
::LoadCursor(NULL IDC_ARROW) HBRUSH(COLOR_WINDOW+1) NULL);
return TRUE;
}
void CChildView::OnPaint()
{
CPaintDC dc(this); // device context for painting
OnDraw(&dc);
// Do not call CWnd::OnPaint() for painting messages
}
//打开256色位图文件
void CChildView::OnFileOpenBmp()
{
//创建一个打开文件对话框,并返回完整的文件路径
static char baseD_CODE szFilter[] = “256色位图文件(*.bmp)|“;
CFileDialog dlg(TRUENULLNULLOFN_HIDEREADONLY|OFN_OVERWRITEPROMPTszFilterNULL);
if(dlg.DoModal() == IDOK)
strPathName = dlg.GetPathName();
else return;
//创建一个文件对象
CFile file;
//以只读模式打开文件
file.Open (strPathNameCFile::modeRead);
//读取文件到HDIB句柄中. 注意:此时只是读取位图文件中文件头之后的部分不含文件头
m_hDIB=::ReadDIBFile (file);
//HDIB句柄: 就是一块存储位图数据的内存区域的地址
//HDIB句柄包含:位图信息头、调色板(如果有的话)、DIB图像数据
//关闭文件
file.Close ();
//指向DIB的指针(指向位图信息头)
BYTE* lpDIB
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 19140 2004-04-26 00:00 数字识别系统源代码\Bp.h
文件 14319 2004-04-29 00:00 数字识别系统源代码\ChildView.cpp
文件 2039 2004-04-29 00:00 数字识别系统源代码\ChildView.h
文件 1282 2004-04-19 00:00 数字识别系统源代码\DBpParamater.h
文件 1119 2004-04-19 00:00 数字识别系统源代码\DBpParamater.cpp
文件 18382 2004-04-27 00:00 数字识别系统源代码\DIBAPI.CPP
文件 1300 2004-04-15 00:00 数字识别系统源代码\DIBAPI.H
文件 3908 2004-04-29 00:00 数字识别系统源代码\DigitRec.clw
文件 46352 2004-04-29 00:00 数字识别系统源代码\DigitRec.aps
文件 4890 2004-04-26 00:00 数字识别系统源代码\DigitRec.dsp
文件 3682 2004-04-20 00:00 数字识别系统源代码\DigitRec.cpp
文件 541 2004-04-15 00:00 数字识别系统源代码\DigitRec.dsw
文件 1389 2004-04-15 00:00 数字识别系统源代码\DigitRec.h
文件 13458 2004-04-29 00:00 数字识别系统源代码\DigitRec.rc
文件 1184 2004-04-20 00:00 数字识别系统源代码\INPUT1.h
文件 1008 2004-04-20 00:00 数字识别系统源代码\INPUT1.cpp
文件 3256 2004-04-28 00:00 数字识别系统源代码\MainFrm.cpp
文件 1625 2004-04-28 00:00 数字识别系统源代码\MainFrm.h
文件 3893 2004-04-15 00:00 数字识别系统源代码\ReadMe.txt
文件 1995 2004-04-29 00:00 数字识别系统源代码\Resource.h
文件 210 2004-04-15 00:00 数字识别系统源代码\StdAfx.cpp
文件 999 2004-04-15 00:00 数字识别系统源代码\StdAfx.h
文件 50133 2004-04-29 00:00 数字识别系统源代码\mydiblib.h
文件 1078 2004-04-19 00:00 数字识别系统源代码\res\DigitRec.ico
文件 400 2004-04-15 00:00 数字识别系统源代码\res\DigitRec.rc2
文件 1054 2004-04-15 00:00 数字识别系统源代码\res\Toolbar.bmp
..A.SH. 5120 2005-05-29 19:14 数字识别系统源代码\res\Thumbs.db
目录 0 2005-05-20 12:02 数字识别系统源代码\res
文件 720 2004-08-04 00:00 数字识别系统源代码\使用说明.txt
目录 0 2005-05-20 12:02 数字识别系统源代码
............此处省略3个文件信息
- 上一篇:电子技术课程设计彩灯控制器
- 下一篇:bootstrapvalidator
相关资源
- 改进的BP神经网络算法
- 基于bp神经网络的表情识别
- 基于ARIMA、BP神经网络与GM的组合模型
- 基于双隐含层BP神经网络的预测
- 基于PSO优化BP神经网络的水质预测研究
- BP神经网络算法逼近一个正弦函数
- 基于主成分分析与BP神经网络的雾天能
- 基于BP神经网络的挖掘机液压系统故障
- BP神经网络在手机评价中的应用
- 基于因素分析与BP神经网络的上市公司
- BP神经网络计算过程详解
- 基于BP神经网络电力系统短期负荷预测
- BP神经网络用于两类图片识别分类
- 各种优化BP神经网络算法
- 基于BP神经网络的车牌识别技术
- 基于LabVIEW的BP神经网络算法的设计实
- bp神经网络图像识别
- 基于BP神经网络的人脸识别的源代码
- BP神经网络在GPS高程拟合中的应用
- bp神经网络轴承故障诊断系统
- 基于遗传算法的BP神经网络在多目标优
- 论文:基于BP神经网络和GM1,1模型的
- BP神经网络详解与
- 车牌识别课程设计,能运行,模板匹
- BP数字识别代码——了解和测试BP神经
- BP神经网络实现函数拟合
- BP预测温度模型_2019.10.14.rar
- 基于PCA和BP神经网络的人脸识别
- excel版BP神经网络,公式运算
- BP神经网络的算法改进及应用
评论
共有 条评论