Qt5中OpenCV3.4.6的安装与配置(亲测)
一、到我百度网盘下载对应软件
链接:https://pan.baidu.com/s/1GTpA8Mt1DwSS4cjFs-ElFg?pwd=6666
软件列表清单
二、安装QT软件
必须现在注册一个QT的账号
点击next进入下一步
点击next进入下一步
点击next,选择组件
32位系统的选择32位的,64位系统选择64位的, 我的系统是64位系统所以选择了64的MinGW
点击Next,勾选复选框
点击Next进入安装界面
等待安装完成,即可
三、安装Cmake和opencv软件
- CMake: https://cmake.org/download/
- OpenCV: https://opencv.org/releases/
cmake安装后的目录
opencv安装的后的目录
三、配置QT和Cmake的环境变量
PATH中添加对应的变量(CMake和Qt环境变量)
cmake: D:\Application\camkedev\bin
QT5:
D:\Application\opencvdev\Qt5.12.12\5.12.12\mingw73_64\bin
D:\Application\opencvdev\Qt5.12.12\Tools\mingw730_64\bin
配置好以上的系统环境变量后,重启电脑使之生效。
四、基于Cmake配置OpenCV源码编译环境
打开cmake
在opencv安装根本目录创建一个rebuil_for_qt文件夹,随便命名
在打开的cmake-gui中选择对应源文件夹source和编译文件夹rebuild_for_qt,
选好后点击下方的configure
选择QT根目录下Tool文件夹下bin目录下的gcc.exe和g++.exe
注意对应好
选择好后点击finish,开始构建
构建完成后勾选如下这3个框,并再次点击configure进行构建
选中“WITH_OPENGL”、“WITH_QT”,WITH_OPENMP,将“WITH_IPP”取消。然后再次点【Configure】
上一步构建完成后,再次点击configure进行一次构建,出现错误。这个时候需要找到你们下载资源里面的几个文件做如下处理
找到源码目录下的.cache\ffmpeg文件夹,把刚刚上面3个文件改为和下面文件名称一致
修改后的
把修改后的拷贝到.cache\ffmpeg文件夹覆盖掉里面的文件
在点击configure
看到下面的编译没有出现任何的错误 说明就OK, 警告之类的不用管
点击Generate按钮生成编译配置
五、编译OpenCV
在该目录下打开命令行cmd,输入mingw32-make -j 32,按下回车开始编译。
注意: 我把
mingw32-make
修改为了make 此处 -j 后的数字 8 是自己电脑的最大线程数,根据实际情况设定 编译完成后,
编译报错
解决方式:
在cmake config 中可以关闭WITH_OPENCL_D3D11_NV
这个选项(默认是开的),
然后重新 Configure
-Generate
-mingw32-make
,进度到100%说明编译完成
接着输入mingw32-make install命令,进行安装。
六、配置OpenCV的环境变量
安装完成后,将如下路径 (我的路径仅供参考,根据自己的实际安装路径而定)
配置到环境变量中。 D:\Application\opencvdev\opencv3.4.6\rebuild_for_qt\install\x64\mingw\bin
七、测试QT使用OpenCV
7.1 根据步骤操作,创建新的QT桌面项目
7.2 导入编译好的Opencv库
INCLUDEPATH += D:\Application\opencvdev\opencv3.4.6\rebuild_for_qt\install\include
LIBS += D:\Application\opencvdev\opencv3.4.6\rebuild_for_qt\lib\libopencv_*.a
7.3 使用opencv库测试
#include "mainwindow.h"
#include <QApplication>
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
using namespace cv;
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Mat img=cv::imread("C:/Users/Gerry/Desktop/chepai18.jpg");
imshow("Image", img);
waitKey(200000);
destroyAllWindows();
return a.exec();
}
运行出现下面结果,代表全部环境搭建完成