| | |
| | | s.printLog("->face--> CREATE Detector ERROR: ", ret) |
| | | return false |
| | | } |
| | | s.printLog("->face--> CREATE Detector Threads: ", threadMax, " GPU:", gpu) |
| | | |
| | | s.detector = true |
| | | return true |
| | | } |
| | |
| | | s.printLog("->face--> CREATE Extractor ERROR: ", ret) |
| | | return false |
| | | } |
| | | s.printLog("->face--> CREATE Extractor Threads: ", threadMax, " GPU:", gpu) |
| | | |
| | | s.extractor = true |
| | | return true |
| | | } |
| | |
| | | s.printLog("->face--> CREATE Propertizer ERROR: ", ret) |
| | | return false |
| | | } |
| | | s.printLog("->face--> CREATE Propertizer Threads: ", threadMax) |
| | | |
| | | s.propertizer = true |
| | | return true |
| | | } |
| | |
| | | if !s.extractor { |
| | | return nil |
| | | } |
| | | s.printLog("->face--> facepos: ", fpos) |
| | | |
| | | var featLen C.int |
| | | pos := (*C.cFacePos)(unsafe.Pointer(&fpos)) |
| | | if pos == nil { |
| | | return nil |
| | | } |
| | | |
| | | p := C.c_api_face_extract(&featLen, pos, (*C.uchar)(unsafe.Pointer(&data[0])), C.int(w), C.int(h), C.int(ch)) |
| | | if p != nil { |
| | |
| | | } |
| | | |
| | | // 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 |