使用Golang调用摄像头
在Golang中,你可以使用github.com/hybridgroup/gocv
库来调用摄像头。以下是一个简单的例子,展示了如何使用Go语言捕获摄像头的图像并显示出来。
首先,你需要安装Go的OpenCV绑定库:
go get -u -d github.com/hybridgroup/gocv
cd $(go env GOPATH)/src/github.com/hybridgroup/gocv
go install
然后,你可以使用以下Go代码来捕获摄像头的图像并显示:
package main
import (
"fmt"
"github.com/hybridgroup/gocv/core"
"github.com/hybridgroup/gocv/highgui"
"github.com/hybridgroup/gocv/imgproc"
"github.com/hybridgroup/gocv/video"
"os"
"os/signal"
"syscall"
)
func main() {
// 初始化摄像头
webcam, err := video.OpenVideoCapture(0)
if err != nil {
fmt.Println("Error opening video capture device", err)
return
}
defer webcam.Close()
// 创建窗口
window := highgui.NewWindow("Webcam Example")
// 设置窗口大小
window.Resize(640, 480)
// 创建Mat类型用于存储图像
img := core.NewMat()
// 捕获并显示图像
for {
if ok := webcam.Read(img); !ok {
fmt.Printf("Error cannot read image from webcam\n")
return
}
// 如果图像不为空,则显示图像
if !img.Empty() {
window.IMShow(img)
highgui.WaitKey(1)
}
}
// 设置程序接收系统信号
c := make(chan os.Signal, 1)
signal.Notify(c, syscall.SIGINT, syscall.SIGTERM)
fmt.Println("Start reading...")
<-c
fmt.Println("Stopping...")
}
确保你的摄像头正常连接并且没有被其他应用占用。运行上述代码,你应该能看到摄像头捕获的实时图像显示在一个窗口中。当你按下Ctrl+C
时,程序会优雅地退出。
评论已关闭