| | |
| | | "github.com/pkg/errors" |
| | | "github.com/satori/go.uuid" |
| | | "gocv.io/x/gocv" |
| | | "image" |
| | | "sync" |
| | | "time" |
| | | "webserver/extend/logger" |
| | | "webserver/extend/util" |
| | | ) |
| | | |
| | | type FaceSdkService struct { |
| | |
| | | } |
| | | |
| | | func (s *FaceSdkService) ReadFromUploadImg() (*protomsg.Image,error){ |
| | | //defer (*(s.File)).Close() |
| | | //imgB, err := ioutil.ReadAll(*(s.File)) |
| | | //if err !=nil{ |
| | | // logger.Debug("File.Read err:",err) |
| | | // return nil,err |
| | | //} |
| | | |
| | | picMat, err := gocv.IMDecode(s.File, gocv.IMReadColor) |
| | | if err !=nil { |
| | | logger.Debug("gocv.IMDecode err:",err) |
| | | return nil,err |
| | | } |
| | | newMat := gocv.NewMat() |
| | | if picMat.Rows() > 1000 || picMat.Cols() > 1000 { |
| | | gocv.Resize(picMat,&newMat, image.Pt(0,0), 0.5, 0.5, gocv.InterpolationDefault) |
| | | picMat = newMat |
| | | } |
| | | |
| | | defer picMat.Close() |
| | | defer newMat.Close() |
| | | |
| | | if picMat.Empty() { |
| | | logger.Debug("file not exist") |
| | | return nil,errors.New("picMat is empty") |
| | |
| | | return coms,ok |
| | | } |
| | | |
| | | func (f *FeaResult) Delete(id string){ |
| | | func (f *FeaResult) Delete(id int64){ |
| | | f.Lock.Lock() |
| | | defer f.Lock.Unlock() |
| | | delete(f.FaceM,id) |
| | |
| | | if err := proto.Unmarshal(resultBytes, &rMsg); err == nil { |
| | | logger.Debug("received MSG:", rMsg.Cid) |
| | | i := protomsg.Image{} |
| | | err := proto.Unmarshal(rMsg.Data, &i) |
| | | bdata, err := util.UnCompress(rMsg.Data) |
| | | if err !=nil { |
| | | logger.Debug("uncompress err:",err) |
| | | continue |
| | | } |
| | | err = proto.Unmarshal(bdata, &i) |
| | | if err !=nil { |
| | | continue |
| | | } |