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