Run processing in main thread instead of widget.

This commit is contained in:
James Graves 2014-10-17 14:43:31 -05:00
parent f5cf2f6e3b
commit 1f51a1601e

View file

@ -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 {