liuxiaolong
2019-08-31 e002c89ce09031360f4399c7d488fb3d01ddc296
controllers/fileController.go
@@ -10,7 +10,9 @@
   "fmt"
   "github.com/gin-gonic/gin"
   "github.com/satori/go.uuid"
   "gocv.io/x/gocv"
   "image"
   "image/color"
   "image/jpeg"
   "io/ioutil"
   "log"
@@ -141,7 +143,9 @@
         }
      }
      //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)
@@ -150,6 +154,22 @@
   }
}
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"`