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

📄 globalfunction.h

📁 用Visual C++编写的车牌定位与识别系统
💻 H
字号:
// GlobalFunction.h
#include "Dibapi.h"

#ifndef _INC_GlobalFunctionAPI
#define _INC_GlobalFunctionAPI

#include <complex>
using namespace std;

#define PI 3.1415926535
#define TRAINDATANUM 10 // 用于训练的数字样本的个数,应为10的整数倍
#define TRAINDATALET 26 // 用于训练的字母样本的个数,应为26的整数倍

//角度到弧度转化的宏
#define RADIAN(angle) ((angle)*PI/180.0) 

// 函数原型
BOOL WINAPI LinerTrans(LPSTR lpDIBBits, LONG lWidth, LONG lHeight, FLOAT fA, FLOAT fB);
BOOL WINAPI ThresholdTrans(LPSTR lpDIBBits, LONG lWidth, LONG lHeight, BYTE bThre);
BOOL WINAPI WindowTrans(LPSTR lpDIBBits, LONG lWidth, LONG lHeight, BYTE bLow, BYTE bUp);
BOOL WINAPI GrayStretch(LPSTR lpDIBBits, LONG lWidth, LONG lHeight, BYTE bX1, BYTE bY1, BYTE bX2, BYTE bY2);
BOOL WINAPI InteEqualize(LPSTR lpDIBBits, LONG lWidth, LONG lHeight);

HGLOBAL WINAPI ZoomDIB(LPSTR lpbi, float fXZoomRatio, float fYZoomRatio);
HGLOBAL WINAPI RotateDIB(LPSTR lpbi, int iRotateAngle);

VOID WINAPI FFT(complex<double> * TD, complex<double> * FD, int r);
BOOL WINAPI ErosionDIB (LPSTR lpDIBBits, LONG lWidth, LONG lHeight, BOOL bHori , int structure[3][3]);
BOOL WINAPI DilationDIB (LPSTR lpDIBBits, LONG lWidth, LONG lHeight, BOOL bHori , int structure[3][3]);
BOOL WINAPI OpenDIB (LPSTR lpDIBBits, LONG lWidth, LONG lHeight, BOOL bHori , int structure[3][3]);
BOOL WINAPI CloseDIB (LPSTR lpDIBBits, LONG lWidth, LONG lHeight, BOOL bHori , int structure[3][3]);
BOOL WINAPI ThiningDIB (LPSTR lpDIBBits, LONG lWidth, LONG lHeight);

BOOL WINAPI RobertDIB(LPSTR lpDIBBits, LONG lWidth, LONG lHeight);
BOOL WINAPI SobelDIB(LPSTR lpDIBBits, LONG lWidth, LONG lHeight);
BOOL WINAPI PrewittDIB(LPSTR lpDIBBits, LONG lWidth, LONG lHeight);
BOOL WINAPI KirschDIB(LPSTR lpDIBBits, LONG lWidth, LONG lHeight);
BOOL WINAPI GaussDIB(LPSTR lpDIBBits, LONG lWidth, LONG lHeight);
BOOL WINAPI DifferDIB(LPSTR lpDIBBits, LONG lWidth, LONG lHeight);
BOOL WINAPI PlateDIB1(LPSTR lpDIBBits, LONG lWidth, LONG lHeight,int* pPlateLine);
BOOL WINAPI PlateDIB2(LPSTR lpDIBBits, LONG lWidth, LONG lHeight,int* pPlateLine);

BOOL WINAPI Template(LPSTR lpDIBBits, LONG lWidth, LONG lHeight, 
					 int iTempH, int iTempW, 
					 int iTempMX, int iTempMY,
					 FLOAT * fpArray, FLOAT fCoef);
BOOL WINAPI MedianFilter(LPSTR lpDIBBits, LONG lWidth, LONG lHeight, 
						 int iFilterH, int iFilterW, 
						 int iFilterMX, int iFilterMY);
unsigned char WINAPI GetMedianNum(unsigned char * bArray, int iFilterLen);
BOOL WINAPI GradSharp(LPSTR lpDIBBits, LONG lWidth, LONG lHeight, BYTE bThre);
int* RowscanDIB1(LPSTR lpDIBBits, LONG lWidth, LONG lHeight);
int* RowscanDIB2(LPSTR lpDIBBits, LONG lWidth, LONG lHeight, int* pPlateLine);
int* RowscanDIB3(LPSTR lpDIBBits, LPSTR lpOrgDIBBits, LONG lWidth, LONG lHeight,int* pPlateLine);
int* RowscanDIB4(LPSTR lpDIBBits,LONG lWidth, LONG lHeight);
BOOL WINAPI CharacterUnit(LPSTR lpDIBBits, LONG lWidth, LONG lHeight);
BOOL WINAPI CharacterUnit1(LPSTR lpDIBBits, LONG lWidth, LONG lHeight, int iWidth, int iHeight);

BOOL WINAPI BPReco();
unsigned char WINAPI BPReco13Section(float* pRecoData);
unsigned char WINAPI BPReco16SectionNumber(float* pRecoData);
unsigned char WINAPI BPReco16SectionLetter(float* pRecoData);
BOOL WINAPI BPRecoStruct();
BOOL WINAPI BPTrain(int	iInputNum, int iMidNum, int iOutputNum);
BOOL WINAPI BPTrain13Section(int iInputNum, int iMidNum, int iOutputNum);
BOOL WINAPI BPTrain16SectionNumber(int iInputNum, int iMidNum, int iOutputNum);
BOOL WINAPI BPTrain16SectionNumber2(int iInputNum, int iMidNum, int iOutputNum);
BOOL WINAPI BPTrain16SectionLetter(int iInputNum, int iMidNum, int iOutputNum);
BOOL WINAPI BPTrainStruct(int iInputNum, int iMidNum, int iOutputNum);

BOOL WINAPI ContourDIB(LPSTR lpDIBBits, LONG lWidth, LONG lHeight);
BOOL WINAPI TraceDIB(LPSTR lpDIBBits, LONG lWidth, LONG lHeight);

VOID WINAPI FFT(complex<double> * TD, complex<double> * FD, int r);
VOID WINAPI IFFT(complex<double> * FD, complex<double> * TD, int r);
VOID WINAPI DCT(double *f, double *F, int power);
VOID WINAPI IDCT(double *F, double *f, int power);
VOID WINAPI WALSH(double *f, double *F, int r);
VOID WINAPI IWALSH(double *F, double *f, int r);

BOOL WINAPI Fourier(LPSTR lpDIBBits, LONG lWidth, LONG lHeight);
BOOL WINAPI DIBDct(LPSTR lpDIBBits, LONG lWidth, LONG lHeight);
BOOL WINAPI DIBWalsh(LPSTR lpDIBBits, LONG lWidth, LONG lHeight);
BOOL WINAPI DIBWalsh1(LPSTR lpDIBBits, LONG lWidth, LONG lHeight);

BOOL WINAPI NUMBERSCANLINE(LPSTR lpDIBBits,LONG lWidth, LONG lHeight);
BOOL WINAPI NUMBERSCANROW(LPSTR lpDIBBits,LONG lWidth, LONG lHeight);

BOOL WINAPI ThresholdDIB (LPSTR lpDIBBits, LONG lWidth, LONG lHeight);
BOOL WINAPI AddMinusDIB (LPSTR lpDIBBits, LPSTR lpDIBBitsBK, LONG lWidth, LONG lHeight, bool bAddMinus);
BOOL WINAPI HprojectDIB (LPSTR lpDIBBits, LONG lWidth, LONG lHeight);
BOOL WINAPI VprojectDIB (LPSTR lpDIBBits, LONG lWidth, LONG lHeight);
BOOL WINAPI TemplateMatchDIB (LPSTR lpDIBBits, LPSTR lpTemplateDIBBits, 
							  LONG lWidth, LONG lHeight,LONG lTemplateWidth,LONG lTemplateHeight);
BOOL WINAPI HDifferProjDIB (LPSTR lpDIBBits, LONG lWidth, LONG lHeight);
BOOL WINAPI HDifferProjDIB2 (LPSTR lpDIBBits, LONG lWidth, LONG lHeight);
BOOL WINAPI HDifferProjDIB3 (LPSTR lpDIBBits, LONG lWidth, LONG lHeight);
int* WINAPI HDifferProjDIB4 (LPSTR lpDIBBits, LONG lWidth, LONG lHeight);

int  WINAPI Distance13(LONG iWidth, LONG iHeight, int ix, int iy);
int  WINAPI Distance16(LONG iWidth, LONG iHeight, int ix, int iy);
float* WINAPI CharExtract13Sect(LPSTR lpDIBBits, LONG lWidth, LONG lHeight);
float* WINAPI CharExtract16Sect(LPSTR lpDIBBits, LONG lWidth, LONG lHeight);
float* WINAPI CharExtract16Sect2(LPSTR lpDIBBits, LONG lWidth, LONG lHeight);
float* WINAPI CharExtractStruct(LPSTR lpDIBBits, LONG lWidth, LONG lHeight);
unsigned char WINAPI DistanceStruct(float* pCodeStruct);

BOOL WINAPI HoughDIB(LPSTR lpDIBBits, LONG lWidth, LONG lHeight);
BOOL WINAPI  DIBToPCX256(LPSTR lpDIB, CFile& file);
HDIB WINAPI  ReadPCX256(CFile& file);
#endif //!_INC_GlobalFunctionAPI

typedef struct{
	int Height;
	int Width;
}	Point;


typedef struct{
	int Value;
	int Dist;
	int AngleNumber;
}	MaxValue;

// PCX文件头结构
typedef struct{
		 BYTE bManufacturer;
		 BYTE bVersion;
		 BYTE bEncoding;
		 BYTE bBpp;
		 WORD wLeft;
		 WORD wTop;
		 WORD wRight;
		 WORD wBottom;
		 WORD wXResolution;
		 WORD wYResolution;
		 BYTE bPalette[48];
		 BYTE bReserved;
		 BYTE bPlanes;
		 WORD wLineBytes;
		 WORD wPaletteType;
		 WORD wSrcWidth;
		 WORD wSrcDepth;
		 BYTE bFiller[54];
} PCXHEADER;





// 函数原型
//BOOL WINAPI TranslationDIB1 (LPSTR lpDIBBits, LONG lWidth, LONG lHeight, LONG lXOffset, LONG lYOffset);
//BOOL WINAPI TranslationDIB (LPSTR lpDIBBits, LONG lWidth, LONG lHeight, LONG lXOffset, LONG lYOffset);
//BOOL WINAPI MirrorDIB(LPSTR lpDIBBits, LONG lWidth, LONG lHeight, BOOL bDirection);
//BOOL WINAPI TransposeDIB(LPSTR lpbi);

//unsigned char WINAPI Interpolation (LPSTR lpDIBBits, LONG lWidth, LONG lHeight, FLOAT x, FLOAT y);

⌨️ 快捷键说明

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