安装CMake
CMake是用于编译的基本工具,可以去官网https://cmake.org/download/上下载cmake-3.21.0-rc3-windows-x86_64.msi文件,双击启动安装。安装过程中勾选将cmake添加到系统path环境变量中。
检查系统环境变量
检查window系统path环境变量,确保cmake的bin目录,Qt的版本bin目录和lib目录,以及Qt中tools下的bin目录被添加到path环境变量中。
下载OpenCV和Contrib
OpenCV的官方地址https://opencv.org/releases/上可以下载需要的OpenCV版本,然后后去OpenCV的Github网站上下载Contrib,地址为https://github.com/opencv。
OpenCV官方将已经稳定成熟的功能放在opencv包里发布,而正在发展中尚未成熟的技术则统一置于Contrib扩展模块中。通常情况,下载的OpenCV不包括Contrib扩展库内容,如果只是一般的图片,视频处理,则仅使用OpenCV就够了。如果要使用SIFT,SURF等先进的图像特征检测技术,以及另外一些高级功能(如人脸识别)都在Contrib扩展库中。
编译前准备:
新建三个文件目录,分别为OpenCVSource,ContribSource,OpenCVBuild。分别存放解压的OpenCV代码,Contrib代码,以及编译后生成的文件和库。
检查并修改一下代码处问题:
- 修改:D:\OpenCVSource\3rdparty\protobuf\src\google\protobuf\stubs\io_win32.cc文件,将“nullptr”改为“NULL”;
- 修改:D:\OpenCVSource\modules\videoio\src\cap_dshow.cpp文件,增加宏定义#define STRSAFE_NO_DEPRECATE;
- 修改:D:\OpenCVSource\modules\photo\test\test_hdr.cpp文件,增加头文件#include<ctime>和#include<cstdlib>;
安装Python环境
由于OpenCV某些模块运行依赖Python平台,所以需要Python环境支持,可以去Python官网https://www.python.org/downloads/windows下载合适的Python版本,默认配置,并检查一下bin目录是否被自动添加到path环境变量下。
编译配置
首先打开CMake,然后设置source目录和build目录,然后点击configure。弹出框,点击依次选择
Specify native complers;C/C++编译器选择mingw,在目录Qt\Qt5.11\tools\mingw\bin\gcc.exe以及g++.exe;
然后点击finish。
对于下面选择需要设置
WITH_OPENGL为true
WITH_QT 为 true
WITH_IPP 为 false
WITH_MSMF为false
ENABLE_PRECOMPILED_HEADERS为 false
OPENCV_ENABLE_ALLOCATOR_STATS为 false
ENABLE_CXX11 为true
WITH_OPENCL_D3D11_NV为 false
OPENCV_EXTRA_MODULES_PATH为Contrilb-source/module目录
然后configure编译。
编译和安装OpenCV库
打开OpenCVBuild目录,运行window命令行,输入命令mingw32-make开始编译,如果编译错误,检查编译配置步骤问题,编译成功后输入命令mingw32-make install安装OpenCV库。
将OpenCVBuild\install\x86\mingw\bin下所有文件复制到Qt项目的Debug目录下。并在Qt项目的.pro文件中添加:
INCLUDEPATH += D:\OpenCVBuild\install\include
LIBS += D:\OpenCVBuild\install\x86\mingw\bin\libopencv_*.dll