1、概述
GoCV是Go语言版的opencv二次封装,基于动态库opencv4。
官方地址:https://gocv.io/
win10环境,安装gocv有点棘手,需要先安装opencv,安装opencv是一个很痛苦的经历,所以在此搞了一个绿色版本环境,可以直接使用。
2、环境配置
- 64bit win10
3、安装包介绍
链接:https://pan.baidu.com/s/1Uzq1hSj0ndz0lCY063OLJA
提取码:1bbo
opencv-4.3.0.7z:
为在win10环境下编译的动态库。
x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z:
为64位环境下的gcc编译器。
gocv-df73d544675c731b2197d46622224839e1af07a6.zip:
为gocv的源码。
4、安装包安装
%GOPATH%,目前作者的路径为E:\GoWorks
1、把gocv-df73d544675c731b2197d46622224839e1af07a6.zip解压到路径为%GOPATH%\src\gocv.io\x\gocv,如下图所示:
2、把opencv-4.3.0.7z解压到C盘。如下图所示:
3、把mingw64-x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z解压到C盘。如下图所示:
4、配置C:\mingw64\bin到环境变量path。如下图所示:
5、配置C:\opencv\build\install\x64\mingw\bin到环境变量path。如下图所示:
至此,已经安装完毕。
5、验证环境
1、运行cmd进入dos。
2、输入chdir %GOPATH%\src\gocv.io\x\gocv,确认回车。
3、输入go run cmd\version\main.go,确认回车,返回以下信息表示成功。
gocv version: 0.23.0
opencv lib version: 4.3.0
至此,gocv的环境已经完成了。
6、测试代码
1、显示图片。
package main
import (
"fmt"
"gocv.io/x/gocv"
)
func main(){
fmt.Printf("gocv version: %s\n", gocv.Version())
fmt.Printf("opencv lib version: %s\n", gocv.OpenCVVersion())
window := gocv.NewWindow("Hello")
img := gocv.IMRead("lena.jpg",gocv.IMReadColor)
if img.Empty() {
fmt.Printf("Error reading image from: %v\n", "lena.jpg")
return
}
for {
window.IMShow(img)
if window.WaitKey(1) >= 0 {
break
}
}
}
2、显示视频。
package main
import (
"fmt"
"gocv.io/x/gocv"
)
func main(){
fmt.Printf("gocv version: %s\n", gocv.Version())
fmt.Printf("opencv lib version: %s\n", gocv.OpenCVVersion())
webcam, err := gocv.VideoCaptureDevice(0)
if err != nil{
fmt.Printf("Error opening video capture device: %v\n", 0)
return
}
defer webcam.Close()
window := gocv.NewWindow("Capture Window")
defer window.Close()
img := gocv.NewMat()
defer img.Close()
for {
if ok := webcam.Read(&img); !ok {
fmt.Printf("Device closed: %v\n", 0)
return
}
if img.Empty() {
continue
}
window.IMShow(img)
if window.WaitKey(1) == 27 {
break
}
}
}
更多的例子,请查看%GOPATH%\src\gocv.io\x\gocv\cmd,里面有很多例子学习。
7、Gocv的API接口介绍
官方文档:https://godoc.org/gocv.io/x/gocv