code_app/third_party/ocr/hanvon/uos/mips64/include/ocrcommon.h

147 lines
3.9 KiB
C

/*--------------------------------------------------------------------------
Embedded OCR Engine for embedded platform v1.0
Copyright (c) 2006£¬HanWang Technology Co., Ltd. All Rights Reserved.
File: ocrcommon.h
Description:
common file for embedded OCR module.
Author: Hanwang Embedded OCR Group
History:
Nov.7, 2006 Created
---------------------------------------------------------------------------*/
#ifndef OCRCOMMON_H
#define OCRCOMMON_H
/*--------------------------------------------------------------------------*/
/* Typedef's */
/*--------------------------------------------------------------------------*/
typedef unsigned char BYTE;
typedef int BOOL;
typedef unsigned short WORD;
//Data type define
///////////////////////////////////////////////////////////////////////////////
typedef void (*RecogProgress)( int nPercent);
typedef int (*IsCanceled)();
typedef void* (*BCRHeapAlloc)( unsigned int lSize );
typedef void (*BCRHeapFree)( void *memblock );
#define MAX_PATH 260
typedef struct _OCRRect //rectangle
{
int left;
int top;
int right;
int bottom;
} TOCRRECT;
enum TLayoutType //layout text type
{
ETypeHorizontal, // TYPE_HORIZONTAL,
ETypeVertical // TYPE_VERTICAL
};
enum TTextType
{
ETextMultiLine, //multi-text line
ETextSingleLine //sigle text line
};
enum TImageBackground //brightness for text background
{
EBackgroundLight, // dark character with light background
EBackgroundDark, //light character with dark background
EBackgroundUnknown // unknown
};
enum TColorType //color type
{
EGray2 = 0, //black and white image, 1 bit per pixel
EGray256, // gray image, 8 bit per pixel
EColor16M, // color image, 24 bit per pixel
};
struct TOCRTextLineInfo // data structure of text line
{
char *iText; // during layout analyze, this is null
short *psDistance;
TOCRRECT iRect; //
TOCRRECT *iCharRect; // This is an array which returns the regions of every single character in this line
int iCharCount; // How many characters in this line
};
struct TOCRBlockInfo // data structure of layout infomation
{
TOCRRECT iRect; // block coordinates
TLayoutType iType; //vertical or horizontal
int iBlockId; // block's ID
};
struct TOCRTextRgnInfo // data structure of recognition result
{
TOCRRECT iRect; // block coordinates
TLayoutType iType; //vertical or horizontal
int iBlockId; // block's ID
TOCRTextLineInfo *iLines;
int iLineCount; // Lines' count in each block
};
struct TOCRLayoutSetting // data structure of layout settings
{
enum TBrightness // brightness
{
ENormal, // Normal
ELight, // Light
EDark // Dark
};
int iSkew; // switch of skew adjustment 1: do skew adjustment; 0: dont do it
TBrightness iBrightness; // switch of brightness adjustment
};
struct TOCRRecognizeSetting // data structure of Recognition settings
{
int iRotate;
void* iCandidate; // for later usage
};
struct TOCRLayoutBlockInfo // COCRLayoutBlockInfo
{
TOCRRECT iRect; //block coordinates
TLayoutType iLayout; //vertical or horzontal text
TTextType iText; //mulitline or single line
TImageBackground iBackgroundColor;//brightness for text background
};
struct TRegionInfo
{
TOCRRECT iRect;
TImageBackground iBackgroundColor;
enum TRegionType
{
EEmailAddress,
ETelephoneNumber,
EWWWAddress
};
TRegionType iType;
};
#endif