windows 操作系统下 gocv 环境搭建

250 阅读2分钟

golang 环境变量设置

GOARCH、GOHOSTARCH、GOHOSTOS 根据当前 windows 操作系统芯片架构设置,CC、CXX 设置 C 编译器,CGO_ENABLED 打开 CGO

C:\Users\70790>go env
set GOARCH=amd64
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set CC=gcc
set CXX=g++
set CGO_ENABLED=1

安装 MinGW-W64

下载地址: github.com/niXman/ming… 根据实际操作系统选择 image.png 下载解压后将 bin 目录配置到 windows 环境变量中

安装 cmake

下载地址: cmake.org/download/ image.png 下载解压后将 bin 目录配置到 windows 环境变量中

下载 gocv 包

go get -u gocv.io/x/gocv

手动下载 OpenCV 和 OpenCV Contrib 模块

进入 gopath 下的 gocv 包目录
目录下有个构建脚本 win_build_opencv.cmd
在当前目录下新建一个文件 win_build_opencv_tmp.cmd,并且将 win_build_opencv.cmd 中的内容拷贝一份到 win_build_opencv_tmp.cmd 中
查看 win_build_opencv_tmp.cmd 中的内容,我们会发现有下载 OpenCV 和 OpenCV Contrib 模块的操作,我们获取下载链接:
github.com/opencv/open… github.com/opencv/open… 注释 win_build_opencv_tmp.cmd 文件中的下载操作,在下载命令行首加 REM 即可
将下载好的文件放在 C:\opencv 目录下

修改相关配置

  • 将 opencv-4.11.0.zip 解压,修改文件 opencv-4.11.0\cmake\OpenCVGenPkgconfig.cmake 中的 cmake_minimum_required(VERSION 2.8.12) 为 cmake_minimum_required(VERSION 4.0.2),不改会报版本过低错误,重新压缩覆盖原来的 opencv-4.11.0.zip 文件
  • 修改 win_build_opencv_tmp.cmd 中的 cmake 命令那一行,追加一个参数 -DOPENCV_ENABLE_NONFREE=ON,加上这个,编译出来的 opencv 才能使用有专利的算法

运行构建脚本脚本

打开 cmd 命令行,设置国外代理,不设置会下载文件超时

set HTTP_PROXY=http://xxx:xxx
set HTTPS_PROXY=http://xxx:xxx

进入 gopath 下的 gocv 包目录,运行 win_build_opencv_tmp.cmd 脚本,等待无报错运行完毕

设置 opencv 环境变量

C:\opencv\build\install\x64\mingw\bin、C:\opencv\build\bin 添加进 windows 环境变量当中

golang CGO 环境变量设置

set CGO_LDFLAGS=-LC:\opencv\build\install\x64\mingw\lib -lopencv_core4110 -lopencv_face4110 -lopencv_videoio4110 -lopencv_imgproc4110 -lopencv_highgui4110 -lopencv_imgcodecs4110 -lopencv_objdetect4110 -lopencv_features2d4110 -lopencv_video4110 -lopencv_dnn4110 -lopencv_xfeatures2d4110 -lopencv_plot4110 -lopencv_tracking4110 -lopencv_img_hash4110
set CGO_CXXFLAGS=--std=c++11
set CGO_CPPFLAGS=-IC:\opencv\build\install\include

验证成功安装

image.png

注意事项

goland 需要重启才能生效刚设置的环境变量