资源简介
识别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神经网络法确定工程材料评价指标的
- GA-BP遗传算法优化神经网络
- kalman-BP神经网络
- 基于遗传算法的BP神经网络优化算法
- BP神经网络fortran仿真程序
- BP神经网络训练预测控制算法
- 运用BP神经网络识别26个英文字母源代
- 基于BP神经网络模型的森林空气质量评
- 基于BP神经网络的数据集训练和测试
- 基于BP神经网络PID整定原理和算法步骤
- BP神经网络用于分类与回归
- 基于自适应性BP神经网络的优化算法
- 采煤工作面瓦斯涌出量LMD-BP神经网络
- 基于BP神经网络和SVM的个人信用评估比
- 基于遗传算法优化的BP神经网络
- 遗传算法GA进行BP神经网络的优化
- BP_regression.zip
- BP神经网络训练过程详细
- 基于BP神经网络的人脸识别
- 退火遗传算法优化BP神经网络用改进的
- 基于BP神经网络实现共享单车数据预测
- 基于人工蜂群的BP神经网络 人工蜂群
- 基于BP神经网络PID控制的源代码
- 基于遗传算法的BP神经网络预测
- PSO训练BP神经网络
- BP神经网络预测超详细
- 利用bp神经网络进行语音信号识别
- GA优化BP神经网络
- 基于BP神经网络整定的PID控制
- 使用BP神经网络做分类预测
评论
共有 条评论