package main
import (
"gocv.io/x/gocv"
)
func main() {
// 웹캠으로부터 영상을 받아오기 위해 VideoCapture 객체 생성
webcam, err := gocv.VideoCaptureDevice(0)
if err != nil {
panic(err)
}
defer webcam.Close()
// 영상 크기 설정
err = webcam.Set(gocv.VideoCaptureFrameWidth, 640)
if err != nil {
panic(err)
}
err = webcam.Set(gocv.VideoCaptureFrameHeight, 480)
if err != nil {
panic(err)
}
// 윈도우 생성
window := gocv.NewWindow("Webcam")
defer window.Close()
// 프레임 반복문
for {
// 프레임 읽기
img := gocv.NewMat()
if ok := webcam.Read(&img); !ok {
panic("cannot read device")
}
if img.Empty() {
continue
}
// 윈도우에 프레임 출력
window.IMShow(img)
if window.WaitKey(1) >= 0 {
break
}
// 메모리 해제
img.Close()
}
}