liuxiaolong
2019-09-16 e87b04d7f9d6b25c858d421432bed5443f91b9df
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"
@@ -25,7 +27,7 @@
   "webserver/extend/code"
   "webserver/extend/config"
   "webserver/extend/esutil"
   "webserver/extend/logger"
   "basic.com/valib/logger.git"
   "webserver/extend/util"
   "webserver/models"
   "webserver/service"
@@ -141,13 +143,31 @@
         }
      }
      //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)
   } else {
      util.ResponseFormat(c,code.ComError,"未提取到人脸")
   }
}
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 {
@@ -214,15 +234,15 @@
   }
   logger.Debug("comp len(personIds):", len(personIds))
   logger.Debug("comp len(captureIds):", len(captureIds))
   esServerIp := config.EsInfo.Masterip
   esServerPort := config.EsInfo.Httpport
   index := config.EsInfo.EsIndex.Dbtablepersons.IndexName
   var dbpersons []protomsg.Dbperson
   if len(personIds) >0 {
      dbpersons, _ = esApi.Dbpersoninfosbyid(personIds, index, esServerIp, esServerPort)
      var dbpApi dbapi.DbPersonApi
      dbpersons, _ = dbpApi.Dbpersoninfosbyid(personIds)
   }
   if len(dbpersons) >0 {
      var dtApi dbapi.DbTableApi
      for _,p :=range dbpersons {
         var dbP = DbPersonVo {
            PersonId: p.Id,
@@ -236,7 +256,7 @@
            TableId: p.TableId,
            Enable: p.Enable,
         }
         dbTableInfos, _ := esApi.Dbtablefosbyid([]string{p.TableId}, config.EsInfo.EsIndex.DbTables.IndexName, esServerIp, esServerPort)
         dbTableInfos, _ := dtApi.DbtablesById([]string{ p.TableId })
         if dbTableInfos !=nil{
            dbP.BwType = dbTableInfos[0].BwType
            dbP.TableName = dbTableInfos[0].TableName