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

📄 patternrecog.h

📁 模式识别的作业代码
💻 H
字号:
///////////////////////////////
//
// PatternRecog.h
//
// 图像模式识别算法库头文件
//
///////////////////////////////

#include "afxtempl.h"//用于定义数组的模板库

#ifndef _INC_PatternRecogAPI
#define _INC_PatternRecogAPI

//定义全局常量
const double MINIMIZE_VAL=0.0000000001; 
const int MAXIMIZE_LINES=3;  //最大的分类线数量

#define DIMETION_2 2
#define DIMETION_3 3

#define COLOR_RED    0
#define COLOR_GREEN  1
#define COLOR_BLUE   2
 
#define AXIS_MINIMIZE  0
#define AXIS_MAXIMIZE  250

#define	nXOffset 5
#define nYOffset 5
#define nLittleOffset 2

//定义右键的功能类型
#define RBUTTONDOWN_MANU_MODE  0 //人工 2模式
#define RBUTTONDOWN_AUTO_MODE  1 //自动 2模式
#define RBUTTONDOWN_MUTI_MODE  2 //自动多模式


//自动判别的样本采样模式
#define AUTOSAMPLE_ENDING 0
#define AUTOSAMPLE_ADDOBJ 1
#define AUTOSAMPLE_ADDBAK 2
#define AUTOSAMPLE_ADDTHIRD 3

////////////////////////////////////////////////////////////////////////////
//定义颜色分量
#define MODE_OBJECT_COLOR_R   255
#define MODE_OBJECT_COLOR_G   255
#define MODE_OBJECT_COLOR_B   0

#define MODE_BACKRD_COLOR_R   0
#define MODE_BACKRD_COLOR_G   255
#define MODE_BACKRD_COLOR_B   255

//定义多模式识别的颜色
#define MODE_COLOR_01   RGB(255,0,0)
#define MODE_COLOR_02   RGB(0,0,255)
#define MODE_COLOR_03   RGB(255,255,0)
#define MODE_COLOR_04   RGB(255,0,255)
#define MODE_COLOR_05   RGB(0,255,255)
#define MODE_COLOR_BK   RGB(0,0,0)

const COLORREF MULTI_MODE_COLOR[6]={MODE_COLOR_01, 
									MODE_COLOR_02,
									MODE_COLOR_03,
									MODE_COLOR_04,
									MODE_COLOR_05,
									MODE_COLOR_BK};
//自定义菜单ID的底线
//用于创建动态菜单
#define DYNAMIC_ID_BEGIN 50000


//判别直线的斜率类型
#define PARALLEL_WITH_NO_AXIS 0
#define PARALLEL_WITH_X_AXIS  1
#define PARALLEL_WITH_Y_AXIS  2 

#define IN_OBJECT_MODE  1
#define IN_BACKRD_MODE  2
#define IN_THIRD_MODE   3

////////////////////////////////////////////////////////////////////////////
//#pragma pack(1);
// 定义存放RGB的结构
typedef struct{
		 BYTE B;
		 BYTE G;
		 BYTE R;
} tagRGBVal;
//typedef CArray<CTaskDeviceStateInfoMsg,CTaskDeviceStateInfoMsg&>	 CTaskDeviceStateInfoArray;
typedef CArray<tagRGBVal,tagRGBVal&>	 RGBValArray;

typedef struct{
	float fA;  //斜率
	float fB;  //截距
} tagLineInfo;
typedef CArray<tagLineInfo,tagLineInfo&>   LineArray;


// 定义存放RGB的结构
typedef struct{
		 LONG X;
		 LONG Y;
		 LONG Z;
} tagPos;

typedef struct{
	double X;
	double Y;
	double Z;
} tagSumOfDistance;

typedef struct{
		 tagPos MeanP;
		 LONG   ERR;
} tagStatics;

//#pragma pack;

// 函数原型
//BOOL WINAPI LinerTrans(LPSTR lpDIBBits, LONG lWidth, LONG lHeight, FLOAT fA, FLOAT fB,WORD wBitCount);
BOOL WINAPI AutoRecognazition();


///////////////////////////////////////////////////////////////////////////////////
//下面是第三章所用标志
#define KMEANSAMPLE_CLOSED 0
#define KMEANSAMPLE_OPEN   1

#define CLUSTERING_METHOD_KMEAN     0   //聚类算法:K-平均
#define CLUSTERING_METHOD_ISODATA   1   //聚类算法:ISODATA

#define CLUSTERING_INITIAL_CENTER_RANDOM   0   //随机取点
#define CLUSTERING_INITIAL_CENTER_SEQUENT   1   //顺序取点

const int MAXIMIZE_CLASSNUM=30;           //最大的分类数量
const double MAXIMIZE_DISTANCE=1.0e100;   //最大距离
const double MAXIMIZE_RSS     =1.0e100;  //最大误差平方和


#endif //!_INC_PatternRecogAPI

⌨️ 快捷键说明

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