#ifndef _ITS_VEHICLE_TYPE_REC_H_ #define _ITS_VEHICLE_TYPE_REC_H_ #define VTR_API extern "C" __attribute__((visibility("default"))) #define MAX_VEHICLE_NUM (5) #define MAX_FACE_NUM (10) #define MAX_CHAR_NUM (10) #define OK (0) //³õʼ»¯ÕýÈ· #define DATA_OUT (-1) //SDK¹ýÆÚ #define KEY_ERROR (-2) //δÕÒµ½¼ÓÃܹ· #define MODE_PATH_ERROR (-3) //modeÎļþ´íÎó #define MAC_KEY_ERROR (-4) //macµØÖ·¼ÓÃÜÎļþ´íÎó #define THREAD_ERROR (-5) //³¬¹ýÏß³ÌÊÚȨÊýÄ¿ /***************³µÅÆÑÕÉ«******************/ typedef enum { E_PLATE_COLOR_NOT, //δ֪ E_PLATE_COLOR_BLUE, E_PLATE_COLOR_BLACK, E_PLATE_COLOR_YELLOW, E_PLATE_COLOR_WHITE, E_PLATE_COLOR_GREEN, E_PLATE_COLOR_GREEN_YELLOW }E_Plate_Color; /***************³µÅÆÀàÐÍ******************/ typedef enum { E_PLATE_TYPE_NOT = 0, //δ֪ E_PLATE_TYPE_NORMAL_BLUE, //ÆÕͨÀ¶ÅÆ E_PLATE_TYPE_NORMAL_BLACK, //ÆÕͨºÚÅÆ E_PLATE_TYPE_NORMAL_YELLOW,//ÆÕͨµ¥²ã»ÆÅÆ E_PLATE_TYPE_DOUBLE_YELLOW,//Ë«²ã»ÆÅÆ E_PLATE_TYPE_POLICE, //°×É«¾¯ÅÆ E_PLATE_TYPE_WJ, //°×É«Î侯 E_PLATE_TYPE_ARMY, //°×É«¾üÅÆ E_PLATE_TYPE_GANG, //¸ÛÅÆ E_PLATE_TYPE_NONG, //Å©ÓóµÅÆ E_PLATE_TYPE_ENERGY, //ÐÂÄÜÔ´³µÅÆ--´¿ÂÌÉ« E_PLATE_TYPE_ENERGY_Y, //ÐÂÄÜÔ´³µ----»ÆÂÌÉ« E_PLATE_TYPE_INDIVI, //¸öÐÔ»¯³µÅÆ E_PLATE_TYPE_EMBASSY, //ʹ¹Ý³µ }E_Plate_Type; typedef struct { E_Plate_Color ePlateColor; E_Plate_Type ePlateType; char platenumber[20]; //³µÅƺÅÂë int iPlateConfidence; int iCharNum; int iCharConfidence[20]; }PlateInfor; /***************³µÉíÑÕÉ«******************/ typedef enum { E_VEHICLE_COLOR_NOT,//δ֪ E_VEHICLE_RED, //ºìÉ« E_VEHICLE_GREEN, //ÂÌÉ« E_VEHICLE_BLUE, //À¶É« E_VEHICLE_PINK, //·ÛÉ« E_VEHICLE_BROWN, //רɫ E_VEHICLE_YELLOW, //»ÆÉ« E_VEHICLE_WHITE, //°×É« E_VEHICLE_BLACK, //ºÚÉ« E_VEHICLE_GRAY, //»ÒÉ«(ÒøÉ«) E_VEHICLE_CYAN, //ÇàÉ« }E_Vehicle_Color; typedef enum { E_VEHICLE_DARK, //ÉîÉ« E_VEHICLE_LIGHT, //dzɫ }E_Vehicle_Bright; typedef enum { E_RGB, E_BGR, E_YUV420, }V_ImageType; //ͼƬ¸ñʽ typedef struct { int iImageHeight; int iImageWidth; V_ImageType eType; unsigned char *pImageData; }V_Image; //ͼÏñ¸ñʽ typedef struct { int iLeft; int iTop; int iRight; int iBottom; }S_Rect; typedef struct { int iPlateFlag; //ÊÇ·ñʶ±ðµ½³µÅÆ PlateInfor plateInfor; //³µÅÆÐÅÏ¢ S_Rect plateRect; //³µÅÆÎ»Öà S_Rect tempVehicleRect; //³µÁ¾Î»Öà char tempVehicleType[1024]; //³µÁ¾ÀàÐÍ--×ÜÃû³Æ jeep-´óÇÐŵ»ù-2004 char tempVehicleBrand[1024]; //³µÁ¾Æ·ÅÆ jeep char tempVehicleSub[1024]; //³µÁ¾×ÓÐͺŠ´óÇÐŵ»ù char tempVehicleType1[1024]; //³µÁ¾ÀàÐÍ ½Î³µ »õ³µ ¿Í³µ Ãæ°ü³µ float fVDConf; //³µÁ¾¼ì²âÖÃÐÅ¶È float fConfdence; //³µÁ¾ÀàÐÍÖÃÐÅ¶È int iVehicleSubModel; //³µÐÍÃû³ÆË÷Òý E_Vehicle_Bright eVehicleBright; //³µÁ¾Éîdzɫ E_Vehicle_Color eVehicleColor1;//³µÉíÖ÷ÑÕÉ« E_Vehicle_Color eVehicleColor2;//³µÉí¸¨ÑÕÉ« unsigned char*pCaptureImage; //ÊÓÆµÄ£Ê½Ê¶±ðÏÂ×¥ÅĵÄͼƬÊý¾Ý£¬±ØÐëµ÷ÓÃʱ¿ª±Ù£¬Í¼Æ¬Ê¶±ðģʽϲ»±Ø¿ª±Ù //¿ª±Ù´óСΪÊäÈëͼƬ¿í¸ß³Ë»ýµÄ3±¶,ÇÒÊÓÆµÄ£Ê½ÏÂÿ´ÎÖ»Êä³öÒ»¸öʶ±ð½á¹û //(×¢£º´Ë×¥ÅĽá¹ûͼµÄ´æ´¢Ë³ÈôÊäÈëͼÏñÊÇYUV¸ñʽ£¬ÔòΪRGBRGB£¬·ñÔòÓëÊäÈçͼÏñ˳ÐòÏàͬ) int iImageWidth; //ÊÓÆµÄ£Ê½ÏÂ×¥ÅÄͼÏñ¿í¶È int iImageHeight; //ÊÓÆµÄ£Ê½ÏÂ×¥ÅÄͼÏñ¸ß¶È }ITS_Vehicle_Result_Single; typedef struct { ITS_Vehicle_Result_Single tempResult[MAX_VEHICLE_NUM]; int iNum; float fLprTime; float fVtrTime; }ITS_Vehicle_Result; typedef struct { int iSceneMode; //³¡¾°Ä£Ê½£º 0---¶¥×° 1----²à×° 2---¶¥×°Â·¾¶ 3---Í£³µ³¡ 4----¹«°² int iModelMode; //¶ÁȡģÐÍ·½Ê½£º0---ԭʼģÐÍ 1---ÐÞ¸ÄÄ£ÐÍ }ITS_Rec_Param; //ÀûÓóµÅÆÊ¶±ð£¬³µÁ¾¼ì²â½øÐгµÐÍʶ±ð VTR_API int ITS_ThreadInit(char* fullKeyPath); VTR_API int ITS_GetThreadNum(); //»ñµÃ¼ÓÃÜËøÖ§³ÖµÄÏß³ÌÊýÄ¿ VTR_API void * ITS_VehicleRecInit(char* modePath, int& iInitFlag, ITS_Rec_Param its_param);//modePathΪmodelÎļþ¼ÐµÄ·¾¶Ãû VTR_API int ITS_VehicleTypeRec_new_1(void* pInstance,V_Image* pVImage,S_Rect* roi,ITS_Vehicle_Result* pResult, char plateResult[64]); VTR_API int ITS_VehicleTypeRec(void* pInstance,V_Image* pVImage,S_Rect* roi,ITS_Vehicle_Result* pResult); VTR_API void ITS_VehicleRecRelease(void* pInstance); #endif