add drawImage after faceExtract
| | |
| | | "fmt" |
| | | "github.com/gin-gonic/gin" |
| | | "github.com/satori/go.uuid" |
| | | "gocv.io/x/gocv" |
| | | "image" |
| | | "image/color" |
| | | "image/jpeg" |
| | | "io/ioutil" |
| | | "log" |
| | |
| | | } |
| | | } |
| | | //2.大图画框,标识人脸位置 |
| | | originFilePath, _ := WeedFSClient.UploadFile(weedfsUri, "FaceUrl", fileBytes) |
| | | drawedB, _ := drawPolygonOnImg(pI, &faceArr) |
| | | |
| | | originFilePath, _ := WeedFSClient.UploadFile(weedfsUri, "FaceUrl", *drawedB) |
| | | resultMap["uploadImage"] = originFilePath |
| | | resultMap["smImage"] = urlArr |
| | | util.ResponseFormat(c,code.Success, resultMap) |
| | |
| | | } |
| | | } |
| | | |
| | | func drawPolygonOnImg(i *protomsg.Image,faceArr *[]*protomsg.ResultFaceDetect) (*[]byte,error) { |
| | | rook, _ := gocv.NewMatFromBytes(int(i.Height), int(i.Width), gocv.MatTypeCV8UC3, i.Data) |
| | | defer rook.Close() |
| | | //yellow := color.RGBA{255, 255, 0, 0} |
| | | red := color.RGBA{255, 0, 0, 0} |
| | | for _,faceResult := range *faceArr { |
| | | left := int(faceResult.Pos.RcFace.Left) |
| | | top := int(faceResult.Pos.RcFace.Top) |
| | | right := int(faceResult.Pos.RcFace.Right) |
| | | bottom := int(faceResult.Pos.RcFace.Bottom) |
| | | gocv.Rectangle(&rook, image.Rect(left,top,right,bottom), red, 1) |
| | | } |
| | | fData,err := gocv.IMEncode(".jpg", rook) |
| | | return &fData,err |
| | | } |
| | | |
| | | type CompareResult struct { |
| | | Id string `json:"id"` |
| | | CompareScore float32 `json:"compareScore"` |