gocv,OpenCV 在windows的安装教程
本文大部分是参考 go 安装opencv(gocv,windows)(根据gocv官方教程)
一小部分参照 官方安装说明地址
1.安装go
安装go语言步骤在此按下不表
2.安装OpenCV
2.1 安装gocv
go get -u -d gocv.io/x/gocv
如果无法下载或者下载速度太慢,把go下载仓库的代理更换为国内即可
2.2 安装MinGW-W64
下载地址:https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/7.3.0/
官方指定下载的软件包需要带有"posix"和"seh" x86_64-posix-seh
下载完之后,解压,然后将xxx\mingw64\bin路径加入环境变量
2.3 安装CMake
下载地址:https://cmake.org/download/
根据自己的系统下载对应的版本安装即可,我的是下载Windows x64 Installer的cmake-3.30.0-rc3-windows-x86_64.msi版本.
安装的时候,记得把添加环境变量选项,如果没有的话,手动将安装目录的bin目录即:安装目录\bin 加入环境变量即可
2.4 build_opencv
按照官方文档所写,接下来只需要执行以下两行代码即可.
chdir %GOPATH%\src\gocv.io\x\gocv
win_build_opencv.cmd
但在这之前,还需要做些准备工作.
2.4.1 确认本地gocv地址
首先到 %GOPATH%\pkg\mod\gocv.io\x\目录下确认gocv的正确地址.
例如我的是: C:\Users\Admin\go\pkg\mod\gocv.io\x\gocv@v0.37.0
将这地址替换上面 chdir 后面的地址,即:
chdir C:\Users\Admin\go\pkg\mod\gocv.io\x\gocv@v0.37.0
2.4.2 修改win_build_opencv.cmd
首先,以编辑的方式打开win_build_opencv.cmd.
确认代码 set PATH=%PATH%;
后面的地址是否与自己本地的mingw64和CMake的环境变量是否一致,如果不一样就改为一样,两个环境变量用;隔开(记得取消cmd文件的文件只读属性).
接下来的步骤,如果你的网络环境可以科学上网,那么在执行chdir语句之后,执行以下语句即可
.\win_build_opencv.cmd
2.4.3 下载opencv-x.x.x.zip和opencv_contrib-x.x.x.zip
(如果你可以科学上网,可以直接跳过这一步)
如果网络环境无法科学上网,那么需要提前下载opencv-x.x.x.zip和opencv_contrib-x.x.x.zip文件,并修改win_build_opencv.cmd.
opencv-x.x.x.zip和opencv_contrib-x.x.x.zip文件的下载地址可以看win_build_opencv.cmd.
以编辑的方式打开win_build_opencv.cmd.,找到以下代码,例如我自己的:
echo Downloading: opencv-4.10.0.zip [91MB]
powershell -command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -Uri https://github.com/opencv/opencv/archive/4.10.0.zip -OutFile c:\opencv\opencv-4.10.0.zip"
echo Extracting...
powershell -command "$ProgressPreference = 'SilentlyContinue'; Expand-Archive -Path c:\opencv\opencv-4.10.0.zip -DestinationPath c:\opencv"
del c:\opencv\opencv-4.10.0.zip /q
echo.
echo Downloading: opencv_contrib-4.10.0.zip [58MB]
powershell -command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -Uri https://github.com/opencv/opencv_contrib/archive/4.10.0.zip -OutFile c:\opencv\opencv_contrib-4.10.0.zip"
echo Extracting...
powershell -command "$ProgressPreference = 'SilentlyContinue'; Expand-Archive -Path c:\opencv\opencv_contrib-4.10.0.zip -DestinationPath c:\opencv"
del c:\opencv\opencv_contrib-4.10.0.zip /q
echo.
https://github.com/opencv/opencv/archive/4.10.0.zip
和 https://github.com/opencv/opencv_contrib/archive/4.10.0.zip
就是两个文件的下载地址
手动下载这两个文件,并将这两个文件复制到c:\opencv目录下(没有该目录就手动创建).
接着将win_build_opencv.cmd中下载文件的命令注释,即在语句前面加 REM
接一个空格
修改后的代码如下:
echo Downloading: opencv-4.10.0.zip [91MB]
REM powershell -command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -Uri https://github.com/opencv/opencv/archive/4.10.0.zip -OutFile c:\opencv\opencv-4.10.0.zip"
echo Extracting...
powershell -command "$ProgressPreference = 'SilentlyContinue'; Expand-Archive -Path c:\opencv\opencv-4.10.0.zip -DestinationPath c:\opencv"
del c:\opencv\opencv-4.10.0.zip /q
echo.
echo Downloading: opencv_contrib-4.10.0.zip [58MB]
REM powershell -command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $ProgressPreference = 'SilentlyContinue'; Invoke-WebRequest -Uri https://github.com/opencv/opencv_contrib/archive/4.10.0.zip -OutFile c:\opencv\opencv_contrib-4.10.0.zip"
echo Extracting...
powershell -command "$ProgressPreference = 'SilentlyContinue'; Expand-Archive -Path c:\opencv\opencv_contrib-4.10.0.zip -DestinationPath c:\opencv"
del c:\opencv\opencv_contrib-4.10.0.zip /q
echo.
之后切换目录,执行cmd命令即可
chdir C:\Users\Admin\go\pkg\mod\gocv.io\x\gocv@v0.37.0
.\win_build_opencv.cmd
PS:因为网络原因,无法科学上网需要等待比较长的实际,40-60分钟左右,由于编译过程中,还需要下载许多文件,所以大部分的时间是浪费在下载过程中.
可以科学上网的话,执行cmd编译过程的话,大概20-30分钟左右,大家耐心等待即可
2.4.4 添加opencv环境变量
编译完成后,将 C:\opencv\build\install\x64\mingw\bin
路径加入环境变量
3.测试
最后,新一个cmd终端,cd到 C:\Users\Admin\go\pkg\mod\gocv.io\x\gocv@v0.37.0\cmd\version
执行
go run main.go
如果看到输出为gocv和opencv的版本就表示安装成功了
C:\Users\Admin\go\pkg\mod\gocv.io\x\gocv@v0.37.0\cmd\version>go run main.go
gocv version: 0.37.0
opencv lib version: 4.10.0