Merge pull request #23 from deltamobile/master

Run processing in main thread instead of widget.
This commit is contained in:
Chih-Wei Chang 2014-10-22 14:55:18 +08:00
commit 60e97996ad

View file

@ -11,6 +11,8 @@ import (
) )
func main() { func main() {
var edge_threshold int
win := opencv.NewWindow("Go-OpenCV Webcam") win := opencv.NewWindow("Go-OpenCV Webcam")
defer win.Destroy() defer win.Destroy()
@ -21,22 +23,25 @@ func main() {
defer cap.Release() defer cap.Release()
win.CreateTrackbar("Thresh", 1, 100, func(pos int, param ...interface{}) { win.CreateTrackbar("Thresh", 1, 100, func(pos int, param ...interface{}) {
for { edge_threshold = pos
if cap.GrabFrame() { })
img := cap.RetrieveFrame(1)
if img != nil {
ProcessImage(img, win, pos)
} else {
fmt.Println("Image ins nil")
}
}
if key := opencv.WaitKey(10); key == 27 { fmt.Println("Press ESC to quit")
os.Exit(0) for {
if cap.GrabFrame() {
img := cap.RetrieveFrame(1)
if img != nil {
ProcessImage(img, win, edge_threshold)
} else {
fmt.Println("Image ins nil")
} }
} }
}) key := opencv.WaitKey(10)
opencv.WaitKey(0)
if key == 27 {
os.Exit(0)
}
}
} }
func ProcessImage(img *opencv.IplImage, win *opencv.Window, pos int) error { func ProcessImage(img *opencv.IplImage, win *opencv.Window, pos int) error {