From 1f51a1601e26f136dd21a8e0148a0df8a1744656 Mon Sep 17 00:00:00 2001 From: James Graves Date: Fri, 17 Oct 2014 14:43:31 -0500 Subject: [PATCH] Run processing in main thread instead of widget. --- samples/webcam.go | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/samples/webcam.go b/samples/webcam.go index bf58931..1e70ed2 100644 --- a/samples/webcam.go +++ b/samples/webcam.go @@ -11,6 +11,8 @@ import ( ) func main() { + var edge_threshold int + win := opencv.NewWindow("Go-OpenCV Webcam") defer win.Destroy() @@ -21,22 +23,25 @@ func main() { defer cap.Release() win.CreateTrackbar("Thresh", 1, 100, func(pos int, param ...interface{}) { - for { - if cap.GrabFrame() { - img := cap.RetrieveFrame(1) - if img != nil { - ProcessImage(img, win, pos) - } else { - fmt.Println("Image ins nil") - } - } + edge_threshold = pos + }) - if key := opencv.WaitKey(10); key == 27 { - os.Exit(0) + fmt.Println("Press ESC to quit") + for { + if cap.GrabFrame() { + img := cap.RetrieveFrame(1) + if img != nil { + ProcessImage(img, win, edge_threshold) + } else { + fmt.Println("Image ins nil") } } - }) - opencv.WaitKey(0) + key := opencv.WaitKey(10) + + if key == 27 { + os.Exit(0) + } + } } func ProcessImage(img *opencv.IplImage, win *opencv.Window, pos int) error {