#ifndef _ITS_VEHICLE_TYPE_REC_H_
|
#define _ITS_VEHICLE_TYPE_REC_H_
|
#include "PlateType.h"
|
|
#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) //超过线程授权数目
|
|
|
#define VTR_API extern "C" __attribute__((visibility("default")))
|
|
/***************车身颜色******************/
|
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, //浅色
|
}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; //车辆深浅色
|
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);
|
|
VTR_API void ITS_BinPlate(V_Image* pSrcPlate, V_Image* pBinPlate, int plateType);
|
|
|
VTR_API void*FeatureExt_Init(char* modePath,int& iFeatureLen);
|
|
VTR_API void FeatureExt_Extract(void* pInstance, V_Image* pImage, S_Rect* vehicleRoi,float* fFeature);
|
|
VTR_API void FeatureExt_Release(void* pInstance);
|
|
|
|
|
#endif
|