#ifndef _LPRECOGNITION_H_
|
#define _LPRECOGNITION_H_
|
|
|
#define LPR_API extern "C" __attribute__((visibility("default")))
|
|
#define LPR_OK 0 //³õʼ»¯ÕýÈ·
|
#define LPR_KEY_ERROR -1 //δÕÒµ½¼ÓÃܹ·
|
|
|
|
//³µÅÆÀàÐÍ
|
typedef enum
|
{
|
E_PT_NOTKNOWN, //δ֪ÀàÐÍ
|
E_PT_NORMAL_BLUE, //ÆÕͨÀ¶ÅÆ
|
E_PT_NORMAL_BLACK, //ÆÕͨºÚÅÆ
|
E_PT_NORMAL_YELLOW,//ÆÕͨµ¥²ã»ÆÅÆ
|
E_PT_DOUBLE_YELLOW,//Ë«²ã»ÆÅÆ
|
E_PT_POLICE, //°×É«¾¯ÅÆ
|
E_PT_WJ, //°×É«Î侯
|
E_PT_ARMY, //°×É«¾üÅÆ
|
E_PT_GANG, //¸ÛÅÆ
|
E_PT_NONG, //Å©ÓóµÅÆ----ÍÏÀ»ú
|
E_PT_ENERGY, //ÐÂÄÜÔ´³µ----ÂÌÉ«
|
E_PT_ENERGY_Y, //ÐÂÄÜÔ´³µ----»ÆÉ«
|
E_PT_INDIVI, //¸öÐÔ»¯³µÅÆ
|
E_PT_EMBASSY, //ʹ¹Ý³µ
|
E_PT_YINGJI, //Ó¦¼±³µÅÆ
|
}LPR_LPlateType;
|
|
//³µÉíÑÕÉ«
|
typedef enum
|
{
|
E_VC_NOTKNOWN, //δ֪
|
E_VC_WHITE, //°×
|
E_VC_SILVER, //»Ò
|
E_VC_YELLOW, //Ȯ
|
E_VC_RED, //ºì
|
E_VC_GREEN, //ÂÌ
|
E_VC_BLUE, //˦
|
E_VC_BLACK, //ºÚ
|
}LPR_LVehicleColor;
|
|
typedef enum
|
{
|
E_VC_DARK, //ÉîÉ«
|
E_VC_LIGHT, //dzɫ
|
}LPR_LVehicleBright;
|
|
typedef enum
|
{
|
E_LPR_RGB,
|
E_LPR_BGR,
|
}LPR_ImageType;
|
|
typedef struct
|
{
|
int iLeft;
|
int iTop;
|
int iRight;
|
int iBottom;
|
}LPR_Rect;
|
|
typedef struct
|
{
|
LPR_ImageType eImageType; //ͼÏñÀàÐÍ
|
int iImageMode; //0£ºÎªÖ¡Ä£Ê½ 1£ºÎª³¡Ä£Ê½
|
int iRecMode; //ʶ±ðģʽ£¬0£ºµ¥ÕÅͼƬʶ±ð£¬1:ÊÓÆµ¼ì²â+ʶ±ð£¬2£ºÊÓÆµ¶àÖ¡ÈÚºÏʶ±ð(×¢£º1ģʽ±È2ģʽ¿ì£¬µ«Ê¶±ðÂʺͲ¶»ñÂʱÈ2µÍ)
|
|
int iResultNum; //Êä³ö½á¹û²ÎÊý£¬×î¶àÖ§³ÖÊä³ö4¸ö½á¹û
|
int iMinPlateWidth; //ʶ±ð×îС³µÅÆ¿í¶È
|
int iMaxPlateWidth; //ʶ±ð×î´ó³µÅÆ¿í¶È
|
|
/******************½ÃÕý²ÎÊý******************/
|
int iHorCorrect; //ÊÇ·ñ×öˮƽÇãб½ÃÕý,Èô²»×öˮƽÇãб½ÃÕý£¬ÔòËã·¨ÄÚ²¿²»»á×ö´¹Ö±´íÇнÃÕý
|
int iVerCorrect; //ÊÇ·ñ×ö´¹Ö±´íÇнÃÕý
|
|
int iMinHorAngle;
|
int iMaxHorAngle;//ˮƽ½ÃÕý½Ç¶È·¶Î§£¬Ö§³Ö×î´ó½Ç¶ÈΪ[-30¡ã£¬30¡ã]
|
int iMinVerAngle;
|
int iMaxVerAngle;//´¹Ö±½ÃÕý½Ç¶È·¶Î§£¬Ö§³Ö×î´ó½Ç¶ÈΪ[-30¡ã£¬30¡ã]
|
|
int iPlateBornThr; //³µÅÆÊä³öÖ¡ÊýãÐÖµ£º¼È³µÅƳöÏÖ´óÓÚ´ËÖ¡Êý£¬ÔòÊä³ö½á¹û
|
int iPlateNumThr; //³µÅƳöÏÖ´ÎÊýãÐÖµ£º¼È³µÅƳöÏÖСÓÚ´ËÊýÄ¿£¬Ôò²»Êä³ö
|
int iPlateDeadThr; //³µÅÆÏûʧ֡Êý£ºÕë¶ÔÊÓÆµÓ¦Ó㬳µÅÆÏûʧ´óÓÚ´ËãÐÖµ£¬½øÐÐÊä³ö
|
|
int iImageWidth; //ͼƬ¿í¶È
|
int iImageHeight; //ͼƬ¸ß¶È
|
|
char pLocalChinese[3]; //±¾µØºº×Ö×Ö·û£¬Èç¹û´Ë×Ö·ûÉèÖÃΪ¿Õ»òÕß31¸öÊ¡·ÝÖ®ÍâµÄ×Ö£¬Ôò²»Ê¹ÓÃÊ׺º×Ö
|
|
//´ËЩÏîÕë¶Ô³µÐÍʶ±ðÓÐÓã¬ÆäÓàÎÞÓÃ
|
float fExpLeftRightR; //³µÁ³×óÓÒÀ©³ä(³µÅƵĿí¶È)±¶Êý ²Î¿¼ÖµÎª1.6
|
float fExpTopR; //³µÁ³Éϲ¿À©³ä(³µÅƵĸ߶È)±¶Êý ²Î¿¼ÖµÎª6.0
|
float fExpBottomR; //³µÁ³Ï²¿À©³ä(³µÅƵĸ߶È)±¶Êý ²Î¿¼ÖµÎª1.5
|
}LPR_RecParma;
|
|
typedef struct
|
{
|
int iYear;
|
int iMonth;
|
int iDay;
|
int iHour;
|
int iMinute;
|
int iSecond;
|
int iMilliseconds;
|
}LPR_Time;
|
|
typedef struct
|
{
|
int iYear;
|
int iMonth;
|
int iDay;
|
}LPR_DATE;
|
typedef struct
|
{
|
char number[20]; //ʶ±ð½á¹û
|
LPR_Rect PlateRect; //³µÅÆÎ»ÖÃ
|
int x[4];
|
int y[4];
|
int iConfidence; //³µÅÆÖÃÐŶÈ
|
LPR_LPlateType ePlateType; //³µÅÆÀàÐÍ
|
int iMoveDir; //³µÁ¾Ô˶¯·½Ïò 0£º³¯½üÔ˶¯£¬1£º³¯Ô¶Ô˶¯£¬-1£ºÎ´Öª
|
LPR_LVehicleColor eVColor1; //³µÉíÖ÷ÑÕÉ«
|
LPR_LVehicleColor eVColor2; //³µÉí´ÎÑÕÉ«
|
LPR_LVehicleBright eVehicleBright; //³µÁ¾Éîdzɫ
|
unsigned char *pResultBits; //ÊÓÆµÊ¶±ðģʽÖÐ×¥ÅĵÄͼƬ,ÊÓÆµÄ£Ê½Ê¶±ðÏÂÓÐЧ£¬ÐèÒª¿ª±Ù
|
|
int iFramNo; //ÊÓÆµÄ£Ê½ÏÂÖ¡ºÅ
|
LPR_Time sTime; //ÊÓÆµÊ¶±ðģʽÖÐ×¥ÅÄ´ËÕÅͼµÄʱ¼ä
|
|
//Õë¶Ô³µÁ³Ê¶±ðÓ¦ÓôËÏÆäÓàÎÞÓÃ
|
unsigned char *pVehicleFaceImage; //¶ÔÓ¦µÄ³µÁ³µÄͼƬ,ÐèÒªÌáǰ¿ª±ÙÄڴ棬¿ª±Ù¸ö×î´óÄÚ´æ¾Í¿ÉÒÔ£¬¿í¸ß¿ÉÒÔ¶¼Îª1000
|
int iVehicleFaceWidth; //³µÁ³¿í¶È
|
int iVehicleFaceHeight; //³µÁ³¸ß¶È
|
int iGrayFaceFlag; //³µÁ³ÊÇ·ñΪ»Ò¶Èͼ
|
|
LPR_Rect charLocation[20]; //³µÅÆ×Ö·ûµÄλÖÃ(»ùÓÚ´óͼ)
|
int charConfidence[20]; //×Ö·ûʶ±ðÖÃÐŶÈ
|
int iCharNum; //³µÅÆ×Ö·ûÊýÄ¿
|
}LPR_Result;
|
|
LPR_API int LPR_ThreadInit(char* fullkeypath);
|
|
LPR_API void LPR_SetRecThr(void* pInstance,int iThr); //ÉèÖóµÅÆÊ¶±ðãÐÖµ£º0~5,0×î¿íËÉ£¬5×îÑϸñ£¬Ä¬ÈÏΪ3
|
|
LPR_API void* LPR_Init(LPR_RecParma RecParma); //³õʼ»¯,ÿ¸öÏ̶߳¼±ØÐëµ÷ÓÃÒ»´Î
|
|
LPR_API int LPR_RecImage(unsigned char *pBits, int iWidth, int iHeight ,LPR_Result* pLprResult,LPR_Rect* recROI,void* pInstance);//ʶ±ð
|
|
LPR_API int LPR_RecImage_mobile(unsigned char *pBits, int iWidth, int iHeight ,LPR_Result* pLprResult,LPR_Rect* recROI,void* pInstance);//ʶ±ð
|
|
LPR_API void LPR_Uninit(void* pInstance); //ÊÍ·Å
|
|
|
|
//ÔÆ¶Ëʶ±ð½Ó¿Ú
|
LPR_API void* LPR_Cloud_Init(LPR_RecParma RecParma, char* fullModel);
|
|
LPR_API int LPR_Cloud_RecImage(unsigned char *pBits, int iWidth, int iHeight ,LPR_Result* pLprResult,LPR_Rect* recROI,void* pInstance);//ʶ±ð
|
|
LPR_API void LPR_Cloud_Uninit(void* pInstance);
|
|
|
|
#endif
|