OpenCV是使用C/C++编写的,官方网站提供的版本Qt不能直接使用,需要使用CMake重新编译Qt可用的版本。
1、下载安装Qt,网址:https://www.qt.io/download,需要注册,安装时选择组件MinGW
2、下载安装CMake,网址:https://cmake.org/download/,安装最新版本3.15, 安装时注意勾选“Add CMake to the system PATH for all users”
3、下载OpenCV4.1源码,网址:https://opencv.org/releases/,下载最新版本4.1.0
>> 修改系环境变量
在Path变量中新增mingw32-make所在目录
>> 打开CMake (cmake-gui)应用程序
设置源码路径和OpenCV导出路径
- Where is the source code: C:\Users\admin\Desktop\opencv-4.1.0
- Where to build the binaries: C:\Users\admin\Desktop\opencv_build
点击 Configure,设置编译器
- Specify the generator for this project: MinGW Makefiles
- Specify native compilers
- Compilers C: C:\Software\Qt\Tools\mingw730_64\bin\gcc.exe
- Compilers C++: C:\Software\Qt\Tools\mingw730_64\bin\g++.exe
再次点击Configure,此时报错CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool
原因:这是因为没有选择MinGW编译器,勾选右上角Grouped、Addvanced,会显示CMAKE_MAKE_PROGRAM项,把路径设置为C:\Software\Qt\Tools\mingw730_64\bin\mingw32-make.exe,重新点击Configure,问题解决!
搜索框搜索以下宏定义
- 勾选WITH_OPENGL
- 勾选WITH_QT
- 不勾选WITH_IPP
- 不勾选ENABLE_PRECOMPILED_HEADERS
- 不勾选 WITH_OPENCL_D3D11_NV,否则会报错‘D3D11_TEXTURE2D_DESC’ was not declared in this scope
再次点击Configure,没有问题点击Generate.
>> 打开CMD终端,进入导出目录
执行mingw32-make
执行mingw32-install
>> 提取头文件及库
编译好之后,把下面三个文件夹提取出来放在一个新目录下,比如:C:\Users\admin\Desktop\opencv410
- opencv_build\install\include文件夹
- opencv_build\lib文件夹
- opencv_build\bin文件夹
>> Qt项目添加Opencv库
.pro文件添加如下内容(库路径视需要添加):
LIBS+= -L$$PWD/opencv410/bin -llibopencv_highgui410 LIBS+= -L$$PWD/opencv410/bin -llibopencv_core410 LIBS+= -L$$PWD/opencv410/bin -llibopencv_imgproc410 LIBS+= -L$$PWD/opencv410/bin -llibopencv_imgcodecs410 INCLUDEPATH += $$PWD/opencv410/include
参考:
https://blog.csdn.net/huihut/article/details/81317102
https://blog.csdn.net/huihut/article/details/81317102