⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inputwnd.h

📁 这是有关计算机人工智能方面的资料
💻 H
字号:
/////////////////////////////////////////////////////////////////////////////
/*      工程:手写数字识别系统                                              */
/*      文件: InputWnd.h : 头文件                                          */
/*      功能:输入终端和数据处理类                                          */
/*      作者:陈海艺                                                        */
/*      时间: 2004-6-23                                                    */
/*     Email:Iorikingdom@hotmail.com                                       */
/////////////////////////////////////////////////////////////////////////////


#pragma once

#define LEN 10   
#define LENF 10.0

#define N LEN*LEN //输入层节点数
#define M 5 //M为隐层的节点数
#define P 10 //P输出层的节点数

#define FX(x) 1/(1+exp(-x))    //特征函数
#define DFX(x) FX(x)*(1-FX(x)) //特征函数的导数

#define A 0.7                 //学习系数
#define precision 0.5          //精度

//返回结构体
typedef struct {
  int result;
  float error;
}RESULT,*PRESULT;

typedef struct {
	BYTE Figure;//识别的数字
	int input[LEN*LEN];//输入样本
	int output[P];
	bool simpling;   //用来判断是否被训练过
}E,*PE;//用来存储识别信息的结构

//权值结构体
typedef struct{
	float v[N][M];
	float w[M][P];
}WEIGHT,*PWEIGHT;

//用来文件输入输出的结构体
typedef struct{
	E e[10];
	WEIGHT WE;
}DATA,*PDATA;

class CInputWnd : public CWnd
{
	DECLARE_DYNAMIC(CInputWnd)

public:
	CInputWnd();
	virtual ~CInputWnd();

protected:
	DECLARE_MESSAGE_MAP()
public:

	afx_msg void OnPaint();

	// 画出输入框架
	bool DrawInputWnd(CPaintDC *pDC);
	
	// 背景画刷
	CBrush m_brBack;
	
	CBrush m_brSquare;
	CPen   m_hPen;
	CRect m_rectThis;
	CRect m_rectArray[LEN][LEN];
	bool  m_bArray[LEN][LEN];
    
	//存储10个样本的输入和输出
	E e[10];            
	
	//权值
	WEIGHT WE;
	bool m_bInitDraw;

	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);

	// 获取经过调整的输入层数值,或者样本数值
	bool GetInput(int index);

	// 给输入的矩阵清零,用来下次输入
	BYTE m_InputArray[LEN][LEN];
	
	//清除矩阵里的缓冲
	bool ClearInput(void);
	
	// 初始化样本
	bool Initialization(void);

	// 是否已经完成基本训练
	bool m_bTrain;
	
	// 关联信息文件
	HANDLE m_hFile;
	
	// 训练函数
	int Training(int index);
	
	// 识别数字
	RESULT Identification(void);
private:

	// 初始化权值
	void InitWeight(void);
};


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -