From 6d6e6d425c4fe63a487ff27be9341671b2c1dd93 Mon Sep 17 00:00:00 2001 From: stydb <suntianyu0923@gmail.com> Date: 星期二, 03 十二月 2019 11:12:36 +0800 Subject: [PATCH] update --- main.go | 90 +++++++++++++++++++++++++-------------------- 1 files changed, 50 insertions(+), 40 deletions(-) diff --git a/main.go b/main.go index 411172c..44c902a 100644 --- a/main.go +++ b/main.go @@ -6,7 +6,7 @@ "time" "track/gohumantrack" - + "track/goconv" "basic.com/valib/goffmpeg.git" ) @@ -19,6 +19,54 @@ flag.StringVar(&url1, "cam1", "", "url") flag.StringVar(&url2, "cam2", "", "url") } + +func run(cam1, cam2 *goffmpeg.GoFFMPEG, tracker *gohumantrack.HumanTracker) bool { + data1, ow1, oh1, _ := cam1.GetYUV() + data2, ow2, oh2, _ := cam2.GetYUV() + if ow1 > 0 && oh1 > 0 && ow2 > 0 && oh2 > 0 { + bgr1 := goconv.YUV2BGR(data1, ow1, oh1) + bgr2 := goconv.YUV2BGR(data2, ow2, oh2) + if bgr1 == nil || bgr2 == nil{ + return false + } + var images []gohumantrack.ImageHumanTracker + img := gohumantrack.ImageHumanTracker{ + Data: bgr1, + Width: ow1, + Height: oh1, + Channel: 3, + } + images = append(images, img) + img = gohumantrack.ImageHumanTracker{ + Data: bgr2, + Width: ow2, + Height: oh2, + Channel: 3, + } + images = append(images, img) + res, err := tracker.Process(images) + if err == nil { + for _, v := range res { + fmt.Printf("result size: %d\n", v.FgNum) + for i := 0; i < int(v.FgNum); i++ { + r := v.Fginfo[i] + if r.Confidence > 0 { + fmt.Printf(" Index %d Rect: %dx%dx%dx%d", i, r.Left, r.Top, r.Right, r.Bottom) + fmt.Printf(" Confidence: %f", r.Confidence*100) + fmt.Printf(" Center: %dx%d", r.X, r.Y) + fmt.Printf(" ID: %d\n", r.ID) + } + } + + } + } else { + fmt.Println("process error: ", err) + } + return true + } + return false +} + func main() { flag.Parse() fmt.Println("url1: ", url1, " url2: ", url2) @@ -42,45 +90,7 @@ cam2.CloseStream() for { - data1, ow1, oh1, _ := cam1.GetYUV() - data2, ow2, oh2, _ := cam2.GetYUV() - if ow1 > 0 && oh1 > 0 && ow2 > 0 && oh2 > 0 { - - var images []gohumantrack.ImageHumanTracker - img := gohumantrack.ImageHumanTracker{ - Data: data1, - Width: ow1, - Height: oh1, - Channel: 3, - } - images = append(images, img) - img = gohumantrack.ImageHumanTracker{ - Data: data2, - Width: ow2, - Height: oh2, - Channel: 3, - } - images = append(images, img) - res, err := tracker.Process(images) - if err == nil { - for _, v := range res { - fmt.Printf("result size: %d\n", v.FgNum) - for i := 0; i < int(v.FgNum); i++ { - r := v.Fginfo[i] - if r.Confidence > 0 { - fmt.Printf(" Index %d Rect: %dx%dx%dx%d", i, r.Left, r.Top, r.Right, r.Bottom) - fmt.Printf(" Confidence: %f", r.Confidence*100) - fmt.Printf(" Center: %dx%d", r.X, r.Y) - fmt.Printf(" ID: %d\n", r.ID) - } - } - - } - } else { - fmt.Println("process error: ", err) - } - } else { - // fmt.Println("cam1 size: ", ow1, "x", oh1, " cam2 size: ", ow2, "x", oh2) + if !run(cam1, cam2, tracker){ time.Sleep(38 * time.Millisecond) } -- Gitblit v1.8.0