panlei
2019-07-02 0182f34e33252183cf4c9717db798e89052441eb
根据摄像机真实配置的区域去画框并改动一些人脸部分的注释
2个文件已修改
28 ■■■■ 已修改文件
main.go 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
util/simpleCV.go 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main.go
@@ -168,13 +168,13 @@
            arg.KeepRight = false
            arg.IsStatic = false
            if len(sdkinfo.Sdkdata) > 1 {
                fmt.Println("----------------------------------------------------",m.Caddr)
                faceParam := protomsg.ParamFacePos{}
                err = proto.Unmarshal(sdkinfo.Sdkdata, &faceParam)
                if err != nil {
                    fmt.Println("解析FACE sdk数据时出现错误", err)
                    continue
                }
                log.Println("------当前算法name",sdkinfo.SdkName,"--------------看看人脸检测中有几个目标:",len(faceParam.Faces))
                for _, info := range faceParam.Faces {
                    photoMap := ruleserver.PhotoMap{Rects: rectFormat(info.Pos.RcFace), Score: float64(info.Pos.Quality)*100, IsYolo:false,ThftRes:*(info.Result)}
                    arg.Photo = append(arg.Photo, photoMap)
@@ -202,13 +202,13 @@
            arg.KeepRight = false
            arg.IsStatic = false
            if len(sdkinfo.Sdkdata) > 1 {
                fmt.Println("----------------------------------------------------",m.Caddr)
                faceParam := protomsg.ParamFaceFeature{}
                err = proto.Unmarshal(sdkinfo.Sdkdata, &faceParam)
                if err != nil {
                    fmt.Println("解析FACE sdk数据时出现错误", err)
                    continue
                }
                log.Println("------当前算法name",sdkinfo.SdkName,"--------------看看人脸提取中有几个目标:",len(faceParam.ExtComp))
                for _, extComp := range faceParam.ExtComp {
                    baseinfos := protomsg.Binfos{}
                    err1 := proto.Unmarshal(extComp.Comp, &baseinfos)
util/simpleCV.go
@@ -15,6 +15,8 @@
    "mime/multipart"
    "net/http"
    "os"
    "ruleprocess/cache"
    "ruleprocess/ruleserver"
    "time"
)
@@ -159,7 +161,7 @@
    }
}
func DrawPolygonOnImage(img protomsg.Image)(maps map[string]interface{}, err0 error){
func DrawPolygonOnImage(cameraId string, img protomsg.Image) (maps map[string]interface{}, err0 error) {
    // draw the rook
    //ddd, err := RetrieveROM("/home/user/workspace/ruleprocess/util/105.jpg")
    //if err != nil {
@@ -181,14 +183,24 @@
    //    },
    //}
    //gocv.FillPoly(&rook, points, green)
    gocv.Line(&rook, image.Pt(100, 100), image.Pt(100, 800), green, 2)
    gocv.Line(&rook, image.Pt(100, 800), image.Pt(800, 800), green, 2)
    gocv.Line(&rook, image.Pt(800, 800), image.Pt(800, 100), green, 2)
    gocv.Line(&rook, image.Pt(800, 100), image.Pt(100, 100), green, 2)
    // 查到摄像机所有的区域并画框
    var cameraPolygons []protomsg.CameraPolygon
    cameraPolygons = cache.GetPolygonsByCameraId(cameraId)
    for _, polygon := range cameraPolygons {
        points := ruleserver.Json2points(polygon.Polygon)
        for index := 0; index < len(points); index++ {
            if index == len(points)-1 { // 闭合图形
                gocv.Line(&rook, image.Pt(int(points[index].X), int(points[index].Y)), image.Pt(int(points[0].X), int(points[0].Y)), green, 2)
            } else {
                gocv.Line(&rook, image.Pt(int(points[index].X), int(points[index].Y)), image.Pt(int(points[index+1].X), int(points[index+1].Y)), green, 2)
            }
        }
    }
    //return nil,nil
    // 上传
    fdata,_ := gocv.IMEncode(".jpg",rook)
    fdata, _ := gocv.IMEncode(".jpg", rook)
    body := &bytes.Buffer{}
    writer := multipart.NewWriter(body)
    _, err1 := writer.CreateFormFile("file", "fasjuierf")