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