From 01f10af7d520bd93367f385f91e33849f5d8773e Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@iotlink.com>
Date: 星期四, 14 十一月 2019 17:27:21 +0800
Subject: [PATCH] fix: plate id sdk add get default config method

---
 go2c.go                     |    2 ++
 gosdk.go                    |   37 +++++++++++++++++++++++++++++++++++++
 csrc/buz/plate/detector.cpp |    8 +++++---
 csdk_struct.h               |    2 ++
 4 files changed, 46 insertions(+), 3 deletions(-)

diff --git a/csdk_struct.h b/csdk_struct.h
index db913fa..a6b2374 100644
--- a/csdk_struct.h
+++ b/csdk_struct.h
@@ -70,6 +70,8 @@
 } cObjInfo;
 
 typedef struct _cPlateIDCfg {
+    int nFastMemorySize;            // 鍗曚綅 K
+    int nMemorySize;                // 鍗曚綅 M
     int nMinPlateWidth;				// 妫�娴嬬殑鏈�灏忚溅鐗屽搴︼紝浠ュ儚绱犱负鍗曚綅
     int nMaxPlateWidth;				// 妫�娴嬬殑鏈�澶ц溅鐗屽搴︼紝浠ュ儚绱犱负鍗曚綅
     int nMaxImageWidth;				// 鏈�澶у浘鍍忓搴�
diff --git a/csrc/buz/plate/detector.cpp b/csrc/buz/plate/detector.cpp
index 17e2747..48cb2a5 100644
--- a/csrc/buz/plate/detector.cpp
+++ b/csrc/buz/plate/detector.cpp
@@ -35,8 +35,8 @@
     }
 
     void init_plate_id_config(const cPlateIDCfg *params) {
-        int fMemSize = 0x8000;
-        int pMemSize = 200 * 1024 * 1024;
+        int fMemSize = params->nFastMemorySize * 1024;
+        int pMemSize = params->nMemorySize * 1024 * 1024;
 
         fmem = (unsigned char*)malloc(fMemSize * sizeof(unsigned char));
         pmem = (unsigned char*)malloc(pMemSize * sizeof(unsigned char));
@@ -78,9 +78,11 @@
     void set_enable_plate_format(const cPlateIDCfg *params) {
         if (params->bOnlyLocation == 1) {
             TH_SetEnabledPlateFormat(PARAM_ONLY_LOCATION_ON, &config);
+            return;
         }
         if (params->bOnlyTwoRowYellow == 1) {
             TH_SetEnabledPlateFormat(PARAM_ONLY_TWOROWYELLOW_ON, &config);
+            return;
         }
         if (params->bIndividual == 1) {
             TH_SetEnabledPlateFormat(PARAM_INDIVIDUAL_ON, &config);
@@ -133,7 +135,7 @@
         rcDetect.top = 0;
         rcDetect.right = img->width;
         rcDetect.bottom = img->height;
-        rcDetect.left = 0;        
+        rcDetect.left = 0;
 
         int ret = TH_RecogImage((BYTE*)(img->data), img->width, img->height, result, &nResultNum, &rcDetect, &config);
         // printf("TH_RecogImage ret = %d\n", ret);
diff --git a/go2c.go b/go2c.go
index 6431f48..1139635 100644
--- a/go2c.go
+++ b/go2c.go
@@ -67,6 +67,8 @@
 }
 
 type CPlateIDCfg struct {
+	FastMemorySize int32 // DSP绛夌殑鐗囧唴鍐呭瓨澶у皬 鍗曚綅K
+	MemorySize     int32 // 鏅�氬唴瀛樺ぇ灏� 鍗曚綅 M
 	MinPlateWidth  int32 // 妫�娴嬬殑鏈�灏忚溅鐗屽搴︼紝浠ュ儚绱犱负鍗曚綅
 	MaxPlateWidth  int32 // 妫�娴嬬殑鏈�澶ц溅鐗屽搴︼紝浠ュ儚绱犱负鍗曚綅
 	MaxImageWidth  int32 // 鏈�澶у浘鍍忓搴�
diff --git a/gosdk.go b/gosdk.go
index c22a8ae..5f2088e 100644
--- a/gosdk.go
+++ b/gosdk.go
@@ -411,6 +411,43 @@
 	return allObjs, newObjs
 }
 
+func DefaultPlateIDSDKConfig() *CPlateIDCfg{
+	return &CPlateIDCfg{
+		FastMemorySize: 32,
+		MemorySize: 400,
+		MinPlateWidth: 60,
+		MaxPlateWidth: 400,
+		MaxImageWidth: 4096,
+		MaxImageHeight: 2160,
+		IsFieldImage: 0,
+		MovingImage: 1,
+		OrderOpt: 0,
+		LeanCorrection: 1,
+		ImproveSpeed: 0,
+		CarLogo: 1,
+		LotDetect: 1,
+		Shadow: 1,
+		ShieldRailing: 1,
+		CarModel: 1,
+		LocateTh: 5,
+		OCRTh: 2,
+	
+		Individual: 1,
+		TwoRowYellow: 1,
+		ArmPolice: 1,
+		ArmPolice2: 1,
+		TwoRowArmy: 1,
+		Tractor: 1,
+		Embassy: 1,
+		ChangNei: 1,
+		MinHang: 1,
+		Consulate: 1,
+		NewEnergy: 1,
+		OnlyTwoRowYellow: 0,
+		OnlyLocation: 0,
+	}
+}
+
 // InitPlateIDDetector init plateid detector
 func InitPlateIDDetector(config *CPlateIDCfg, soPath []byte) {
 	C.c_api_plate_id_init((*C.cPlateIDCfg)(unsafe.Pointer(config)), (*C.char)(unsafe.Pointer(&soPath[0])))

--
Gitblit v1.8.0