From d85f3edab0d8c495cecd7a81f31a9ead1eb001ac Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期三, 15 一月 2020 09:23:17 +0800
Subject: [PATCH] copy from bgr-2-analysis

---
 goface.go |   20 +++++++++++---------
 1 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/goface.go b/goface.go
index 16b840a..e77e23c 100644
--- a/goface.go
+++ b/goface.go
@@ -8,7 +8,7 @@
 #cgo LDFLAGS: -lTHFaceImage -lTHFeature -lTHFaceProperty -lTHFaceTracking
 #cgo LDFLAGS: -lcudart -lcublas -lcurand -lrt -ldl -lpthread
 #include <stdlib.h>
-#include "csdk.h"
+#include "cface.h"
 */
 import "C"
 import (
@@ -103,7 +103,7 @@
 func (s *SDKFace) Tracker(w, h, maxFaces, interval, sampleSize, threadMax, gpu int) bool {
 
 	if s.tracker {
-		return s.tracker
+		return true
 	}
 	ret := C.c_api_face_tracker_init(C.int(threadMax), C.int(gpu), C.int(w), C.int(h), C.int(maxFaces), C.int(interval), C.int(sampleSize))
 	if ret <= 0 {
@@ -155,10 +155,12 @@
 	pos := (*C.cFacePos)(unsafe.Pointer(&fpos))
 
 	p := C.c_api_face_extract(&featLen, pos, (*C.uchar)(unsafe.Pointer(&data[0])), C.int(w), C.int(h), C.int(ch))
-	defer C.free(unsafe.Pointer(p))
-	b := C.GoBytes(unsafe.Pointer(p), featLen)
-	s.printLog("->face--> Extract Nothing, Ret: ", len(b))
-	return b
+	if p != nil {
+		defer C.free(unsafe.Pointer(p))
+		return C.GoBytes(unsafe.Pointer(p), featLen)
+	}
+	s.printLog("->face--> Extract Nothing")
+	return nil
 }
 
 // Compare face compare
@@ -173,15 +175,15 @@
 }
 
 // Propertize prop
-func (s *SDKFace) Propertize(fpos sdkstruct.CFacePos, data []byte, w, h, c int, ch int) *sdkstruct.CThftResult {
+func (s *SDKFace) Propertize(fpos sdkstruct.CFacePos, data []byte, w, h, c int, ch int) sdkstruct.CThftResult {
 	if !s.propertizer {
-		return nil
+		return sdkstruct.CThftResult{Age: 0}
 	}
 
 	pos := (*C.cFacePos)(unsafe.Pointer(&fpos))
 	result := C.c_api_face_property(pos, (*C.uchar)(unsafe.Pointer(&data[0])), C.int(w), C.int(h), C.int(ch))
 	s.printLog("->face--> Propertize")
-	return (*sdkstruct.CThftResult)(unsafe.Pointer(&result))
+	return *(*sdkstruct.CThftResult)(unsafe.Pointer(&result))
 }
 
 // CFaceInfoArrayToGoArray convert cFaceInfo array to go

--
Gitblit v1.8.0