今天看到一个 OpenCV 在golang上的绑定包gocv,有了它,就可以愉快地使用golang来做图像处理了。
众所周知,golang可以生成单独的二进制文件,打包起来相当方便,体积也不大,那我们就先来看看这个包吧。
首先找到它的官网:
github :
按照官网介绍
安装gocv
在 windows 终端下输入
go get -u -d gocv.io/x/gocv
会安装到%GOPATH%\src下。
编译opencv
要使用 go cv,需要安装编译opencv到电脑中,需要提前准备两个工具。
安装MinGW-W64
当然,如果你的电脑是32位的,无需多言,装对应的版本就好。
下载地址可以使用这个:
下载完成后,记得将 mingw64\bin 加入电脑的path 系统变量 ,并重开控制台.
安装CMake
可以使用以下链接下载cmake工具,并安装到默认的目录
当然安装完毕后,也需要确认cmake路径加入系统的path变量(虽然工具会自动添加)。
编译opencv
cd %GOPATH%\src\gocv.io\x\gocv
win_build_opencv.cmd
可以看看路径下的MakeFile了解下编译过程,
大概就是 下载 opencv.zip ->解压 -> 下载opencv-contrib.zip->解压->make->make install
可能出现cmake找不到编译器,自行更改即可。
编译好后,添加C:\opencv\build\install\x64\mingw\bin到 环境变量 。
验证opencv的版本
cd %GOPATH%\src\gocv.io\x\gocv
go run cmd\version\main.go
如果输出
gocv version: 0.26.0
opencv lib version: 4.5.1
就安装成功了。
在此过程中,我遇到了以下问题。
1.报错 libzlib.a: error adding symbols: Archive has no index; run ranlib to add one
—生成的静态库,符号不对,删掉opencv文件夹,使用正确的编译器,重新编译
2.在验证gocv版本时,输出 exit status 3221225781
—这是因为没有将opencv生成的目录加入系统变量,将C:\opencv\build\bin(你安装opencv的位置)加入path变量。再重新验证gocv版本,就ok啦。