From a549152747fee2085cafb8bdca4aac05fe738e36 Mon Sep 17 00:00:00 2001
From: chenshijun <csj_sky@126.com>
Date: 星期四, 11 七月 2019 19:28:28 +0800
Subject: [PATCH] 增加人脸跟踪

---
 gosdk.go |   38 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 38 insertions(+), 0 deletions(-)

diff --git a/gosdk.go b/gosdk.go
index 3e230d4..e44004b 100644
--- a/gosdk.go
+++ b/gosdk.go
@@ -11,6 +11,7 @@
 */
 import "C"
 import (
+	"fmt"
 	"unsafe"
 )
 
@@ -216,6 +217,43 @@
 	}
 }
 
+func FaceInfo2FacePos(face CFaceInfo) (fPos CFacePos){
+	fPos.RcFace = face.RcFace
+	fPos.PtLeftEye = face.PtLeftEye
+	fPos.PtRightEye = face.PtRightEye
+	fPos.PtNose = face.PtNose
+	fPos.PtMouth = face.PtMouth
+	fPos.FAngle.Yaw = face.FAngle.Yaw
+	fPos.FAngle.Pitch = face.FAngle.Pitch
+	fPos.FAngle.Roll = face.FAngle.Roll
+	fPos.FAngle.Confidence = face.FAngle.Confidence
+
+	copy(fPos.PFacialData[:], face.PFacialData[:512])
+
+	return fPos
+}
+
+// FaceTrack face tracking info
+func FaceTrackSimple(img SDKImage, ch int) (faces []CFaceInfo) {
+	data := img.Data
+	w := img.Width
+	h := img.Height
+
+	var fCount C.int
+	cFinfo := C.c_api_face_track(&fCount, (*C.uchar)(unsafe.Pointer(&data[0])), C.int(w), C.int(h), C.int(ch))
+	fmt.Println("cFinfo detected:",cFinfo)
+	if cFinfo == nil {
+		return faces
+	}
+	defer C.free(unsafe.Pointer(cFinfo))
+	faces = CFaceInfoArrayToGoArray(unsafe.Pointer(cFinfo), int(fCount))
+	//if len(faces) > 0{
+		fmt.Println("faces detected:",len(faces))
+	//}
+
+	return faces
+}
+
 // YoloDetect yolo detect
 func YoloDetect(handle *YoloHandle, img SDKImage, thrsh float32, umns int) []CObjInfo {
 

--
Gitblit v1.8.0