| | |
| | | "fmt" |
| | | "github.com/gin-gonic/gin" |
| | | "github.com/satori/go.uuid" |
| | | "gocv.io/x/gocv" |
| | | "image" |
| | | "image/color" |
| | | "image/jpeg" |
| | | "io/ioutil" |
| | | "log" |
| | |
| | | "webserver/extend/code" |
| | | "webserver/extend/config" |
| | | "webserver/extend/esutil" |
| | | "webserver/extend/logger" |
| | | "basic.com/valib/logger.git" |
| | | "webserver/extend/util" |
| | | "webserver/models" |
| | | "webserver/service" |
| | |
| | | } |
| | | } |
| | | //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 { |
| | |
| | | } |
| | | 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, |
| | |
| | | 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 |