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