From 8464662ccdff684afeeee3356d838e838a0a5d11 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@iotlink.com>
Date: 星期六, 11 一月 2020 15:19:51 +0800
Subject: [PATCH] update vehicle sdk libs

---
 sdk/plate/vehicle/include/ItsVehicleTypeRec.h |  153 +++++++++++++++++++++++++++++++-------------------
 1 files changed, 94 insertions(+), 59 deletions(-)

diff --git a/sdk/plate/vehicle/include/ItsVehicleTypeRec.h b/sdk/plate/vehicle/include/ItsVehicleTypeRec.h
index bdcb01e..b1c6302 100644
--- a/sdk/plate/vehicle/include/ItsVehicleTypeRec.h
+++ b/sdk/plate/vehicle/include/ItsVehicleTypeRec.h
@@ -1,6 +1,7 @@
 #ifndef _ITS_VEHICLE_TYPE_REC_H_
 #define _ITS_VEHICLE_TYPE_REC_H_
-#include "PlateType.h"
+
+#define VTR_API extern "C" __attribute__((visibility("default"))) 
 
 #define  MAX_VEHICLE_NUM  (5)
 
@@ -8,36 +9,79 @@
 
 #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  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_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, //娴呰壊
+	E_VEHICLE_DARK,  //深色
+	E_VEHICLE_LIGHT, //浅色
 }E_Vehicle_Bright;
 
 typedef enum 
@@ -45,7 +89,7 @@
 	E_RGB,
 	E_BGR,
 	E_YUV420,  
-}V_ImageType;  //鍥剧墖鏍煎紡
+}V_ImageType;  //图片格式
 
 typedef struct
 {
@@ -53,7 +97,7 @@
 	int       iImageWidth;
 	V_ImageType eType;
 	unsigned char *pImageData;
-}V_Image; //鍥惧儚鏍煎紡
+}V_Image; //图像格式
 
 
 typedef struct  
@@ -67,29 +111,29 @@
 
 typedef struct
 {
-	int iPlateFlag;                //鏄惁璇嗗埆鍒拌溅鐗�
-	PlateInfor plateInfor;         //杞︾墝淇℃伅
-	S_Rect plateRect;              //杞︾墝浣嶇疆
-	S_Rect tempVehicleRect;        //杞﹁締浣嶇疆
+	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];   //杞﹁締绫诲瀷   杞胯溅 璐ц溅  瀹㈣溅  闈㈠寘杞�
+	char tempVehicleType[1024];    //车辆类型--总名称  jeep-大切诺基-2004
+	char tempVehicleBrand[1024];   //车辆品牌       jeep
+	char tempVehicleSub[1024];     //车辆子型号     大切诺基
+	char tempVehicleType1[1024];   //车辆类型   轿车 货车  客车  面包车
 
-	float fVDConf;          //杞﹁締妫�娴嬬疆淇″害
+	float fVDConf;          //车辆检测置信度
 
-	float fConfdence;              //杞﹁締绫诲瀷缃俊搴�
-	int iVehicleSubModel;          //杞﹀瀷鍚嶇О绱㈠紩
-	E_Vehicle_Bright eVehicleBright; //杞﹁締娣辨祬鑹�
-	E_Vehicle_Color eVehicleColor1;//杞﹁韩涓婚鑹�
-	E_Vehicle_Color eVehicleColor2;//杞﹁韩杈呴鑹�
+	float fConfdence;              //车辆类型置信度
+	int iVehicleSubModel;          //车型名称索引
+	E_Vehicle_Bright eVehicleBright; //车辆深浅色
+	E_Vehicle_Color eVehicleColor1;//车身主颜色
+	E_Vehicle_Color eVehicleColor2;//车身辅颜色
 
-	unsigned char*pCaptureImage; //瑙嗛妯″紡璇嗗埆涓嬫姄鎷嶇殑鍥剧墖鏁版嵁锛屽繀椤昏皟鐢ㄦ椂寮�杈燂紝鍥剧墖璇嗗埆妯″紡涓嬩笉蹇呭紑杈�
-	                             //寮�杈熷ぇ灏忎负杈撳叆鍥剧墖瀹介珮涔樼Н鐨�3鍊�,涓旇棰戞ā寮忎笅姣忔鍙緭鍑轰竴涓瘑鍒粨鏋�
-	                             //(娉細姝ゆ姄鎷嶇粨鏋滃浘鐨勫瓨鍌ㄩ『鑻ヨ緭鍏ュ浘鍍忔槸YUV鏍煎紡锛屽垯涓篟GBRGB锛屽惁鍒欎笌杈撳鍥惧儚椤哄簭鐩稿悓)
-	int iImageWidth;             //瑙嗛妯″紡涓嬫姄鎷嶅浘鍍忓搴�
-	int iImageHeight;            //瑙嗛妯″紡涓嬫姄鎷嶅浘鍍忛珮搴�
+	unsigned char*pCaptureImage; //视频模式识别下抓拍的图片数据,必须调用时开辟,图片识别模式下不必开辟
+	                             //开辟大小为输入图片宽高乘积的3倍,且视频模式下每次只输出一个识别结果
+	                             //(注:此抓拍结果图的存储顺若输入图像是YUV格式,则为RGBRGB,否则与输如图像顺序相同)
+	int iImageWidth;             //视频模式下抓拍图像宽度
+	int iImageHeight;            //视频模式下抓拍图像高度
 
 }ITS_Vehicle_Result_Single;
 
@@ -105,34 +149,25 @@
 
 typedef struct
 {
-	int iSceneMode;   //鍦烘櫙妯″紡锛�   0---椤惰       1----渚ц    2---椤惰璺緞   3---鍋滆溅鍦�   4----鍏畨
-	int iModelMode;   //璇诲彇妯″瀷鏂瑰紡锛�0---鍘熷妯″瀷   1---淇敼妯″瀷
+	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 int  ITS_GetThreadNum();  //获得加密锁支持的线程数目
 
-VTR_API void * ITS_VehicleRecInit(char* modePath, int& iInitFlag, ITS_Rec_Param its_param);//modePath涓簃odel鏂囦欢澶圭殑璺緞鍚�
+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);
-
 
 
 

--
Gitblit v1.8.0