From 54f7bb20860ec5a98964290c721113d71ea6e408 Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期二, 02 七月 2019 19:57:55 +0800 Subject: [PATCH] 上传人脸 --- util/upload.go | 8 ++++---- insertdata/insertDataToEs.go | 5 ++--- util/image.go | 43 +++++++++++++++++++++---------------------- 3 files changed, 27 insertions(+), 29 deletions(-) diff --git a/insertdata/insertDataToEs.go b/insertdata/insertDataToEs.go index 447e3af..b732361 100644 --- a/insertdata/insertDataToEs.go +++ b/insertdata/insertDataToEs.go @@ -126,9 +126,8 @@ } i := protomsg.Image{} err = proto.Unmarshal(bdata, &i) - i1 := protomsg.Image{} - i1 = util.Subimg(i.Data, int(face.Location.X), int(face.Location.Y), int(face.Location.X+face.Location.Width), int(face.Location.Y+face.Location.Height)) - resp, err := util.PostFormBufferData(weedfsUrl, i1, uuid.NewV4().String()) + bytes := util.Subimg(i.Data, int(face.Location.X), int(face.Location.Y), int(face.Location.X+face.Location.Width), int(face.Location.Y+face.Location.Height)) + resp, err := util.PostFormBufferData1(weedfsUrl, bytes, uuid.NewV4().String()) if err != nil { log.Println("涓婁紶灏忓浘鍑洪敊") } diff --git a/util/image.go b/util/image.go index bcadd29..2673449 100644 --- a/util/image.go +++ b/util/image.go @@ -1,33 +1,32 @@ package util import ( - "basic.com/pubsub/protomsg.git" - "bytes" - "fmt" - "github.com/gogo/protobuf/proto" + "gocv.io/x/gocv" "image" - "image/jpeg" - "log" - "reflect" ) // 鎸夊昂瀵稿幓鍒囧浘 -func Subimg(dbyte []byte,x0,y0,x1,y1 int,) protomsg.Image{ +func Subimg(dbyte []byte,x0,y0,x1,y1 int,) []byte{ - bbb := bytes.NewBuffer(dbyte) // 蹇呴』鍔犱竴涓猙uffer 涓嶇劧娌℃湁read鏂规硶灏变細鎶ラ敊 - log.Println("==================鐪嬬湅杩欎釜buffer",bbb) - m, _, _ := image.Decode(bbb) // 鍥剧墖鏂囦欢瑙g爜 - rgbImg := m.(*image.YCbCr) - subImg := rgbImg.SubImage(image.Rect(x0, y0, x1, y1)) //鍥剧墖瑁佸壀x0 y0 x1 y1 - fmt.Println(reflect.TypeOf(subImg)) - //f, _ := os.Create("./test.jpg") //鍒涘缓鏂囦欢 - //defer f.Close() //鍏抽棴鏂囦欢 - emptyBuff := bytes.NewBuffer(nil) //寮�杈熶竴涓柊鐨勭┖buff - jpeg.Encode(emptyBuff, subImg, nil) //img鍐欏叆鍒癰uff - bytes := emptyBuff.Bytes() - i := protomsg.Image{} - proto.Unmarshal(bytes,&i) - return i + //bbb := bytes.NewBuffer(dbyte) // 蹇呴』鍔犱竴涓猙uffer 涓嶇劧娌℃湁read鏂规硶灏变細鎶ラ敊 + ////log.Println("==================鐪嬬湅杩欎釜buffer",bbb) + //m, _, _ := image.Decode(bbb) // 鍥剧墖鏂囦欢瑙g爜 + //rgbImg := m.(*image.YCbCr) + //subImg := rgbImg.SubImage(image.Rect(x0, y0, x1, y1)) //鍥剧墖瑁佸壀x0 y0 x1 y1 + //fmt.Println(reflect.TypeOf(subImg)) + ////f, _ := os.Create("./test.jpg") //鍒涘缓鏂囦欢 + ////defer f.Close() //鍏抽棴鏂囦欢 + //emptyBuff := bytes.NewBuffer(nil) //寮�杈熶竴涓柊鐨勭┖buff + //jpeg.Encode(emptyBuff, subImg, nil) //img鍐欏叆鍒癰uff + //bytes := emptyBuff.Bytes() + //i := protomsg.Image{} + //proto.Unmarshal(bytes,&i) + //return i //f, _ := os.Create("./test.jpg") //鍒涘缓鏂囦欢 //defer f.Close() //鍏抽棴鏂囦欢 //jpeg.Encode(f, subImg, nil) //鍐欏叆鏂囦欢 + + img,_ := gocv.NewMatFromBytes(int(y1-y0),int(x1-x0),gocv.MatTypeCV8UC3,dbyte) + region := img.Region(image.Rectangle{image.Point{x0,y0},image.Point{x1,y1}}) + bytes, _ := gocv.IMEncode(".jpg", region) + return bytes } \ No newline at end of file diff --git a/util/upload.go b/util/upload.go index 9286695..a5e4870 100644 --- a/util/upload.go +++ b/util/upload.go @@ -76,11 +76,11 @@ } // 涓婁紶鍥剧墖锛堜簩杩涘埗娴侊級 -func PostFormBufferData1(uri string, fbada []byte, fileName string,) (maps map[string]interface{}, err0 error) { +func PostFormBufferData1(uri string, fdata []byte, fileName string,) (maps map[string]interface{}, err0 error) { // 瑕佹寚瀹氳浆byte鐨勬牸寮� - imgs := gocv.NewMat() - imgs, _ = gocv.NewMatFromBytes(1000, 1000, gocv.MatTypeCV8UC3, fbada) - fdata,_ := gocv.IMEncode(".jpg",imgs) + //imgs := gocv.NewMat() + //imgs, _ = gocv.NewMatFromBytes(1000, 1000, gocv.MatTypeCV8UC3, fbada) + //fdata,_ := gocv.IMEncode(".jpg",imgs) body := &bytes.Buffer{} writer := multipart.NewWriter(body) _, err := writer.CreateFormFile("file", fileName) -- Gitblit v1.8.0