Win10+Qt5.8+OpenCV3.2配置过程

来源:互联网 发布:数控pmc编程 编辑:程序博客网 时间:2024/05/17 23:07

参考:http://blog.csdn.net/u010189457/article/details/66478574?locationNum=2&fps=1

参考:https://wiki.qt.io/How_to_setup_Qt_and_openCV_on_Windows

一定要注意版本搭配,之前试过好多版本的没有成功,最后按照以下版本配置成功,以下路径是参考以上链接中的进行设置,也可以按照自己的实际情况修改路径

工具版本: 
- Qt5.8.0:qt-opensource-windows-x86-mingw530-5.8.0.exe      

链接地址:http://mirrors.ustc.edu.cn/qtproject/archive/qt/5.8/5.8.0/

- Opencv3.2:OpenCV-3.2.0-vc14.exe          

 链接地址:https://opencv.org/opencv-3-2.html

- CMake:cmake-3.8.0-rc3-win64-x64.msi    

链接地址:https://cmake.org/files/v3.8/

第一步:安装Qt、CMake、解压OpenCV

Qt默认安装即可;Cmake要选择将环境变量添加到所有用户上;OpenCV解压到工作路径中就算安装完成

需要记住三者的安装位置,后边都要用到

第二步:配置环境变量 
这里写图片描述 
图1: CMake和Qt环境变量配置 
注:此时需要使环境变量生效,有两种方式:

  1. 设置环境变量后重启电脑
  2. 打开DOS终端, 如果是设置环境变量“PATH”,则在修改完成后,在DOS窗口命令行中输入:set PATH=C: ,然后关闭DOS窗口。再次打开DOS窗口,输入:echo %PATH% ,可以发现“我的电脑”->“属性”->“高级”->“环境变量”中设置的 PATH 值已经生效。(DOS窗口中的环境变量只是Windows环境变量的一个副本,通过对副本的修改可以引发Windows环境变量的刷新,所以只是环境变量刷新了一次,不用担心DOS窗口中的修改会使得系统环境变量的值变成了”C:”)

第三步:CMake操作 
这里写图片描述
图2:打开CMake 
Where is the source code:选择OpenCV解压的源文件文件夹位置; 
Where to build the binaries:选择自定义的空文件夹用于保存生成对象 
点击左下角Configure按钮,会出现如下界面

这里写图片描述 
图3:选择工具集 
点击Next按钮,会出现配置编译器gcc和g++的界面,gcc和g++在Qt安装目录下: 
D:\Qt\Qt5.8.0\Tools\mingw530_32\bin\gcc 
D:\Qt\Qt5.8.0\Tools\mingw530_32\bin\g++ 
点击finish按钮开始Configure

这里写图片描述
图4:第一次Configure后的结果图

这里写图片描述
图5:选择WITH_OPENGL和WITH_QT支持选项 
再次点击左下角Configure按钮

这里写图片描述
图6:第二次Configure的结果图 
再次点击左下角Configure按钮

这里写图片描述
图7:第三次Configure的结果图 
然后点击左下角Generate按钮

这里写图片描述
图8:点击Generate按钮后的结果图,MakeFiles生成成功 
CMake操作结束,关闭CMake的操作界面

第四步:mingw32-make操作 
打开CMD窗口,进入生成OpenCV目标文件的文件夹,输入mingw32-make开始编译,需要半个小时左右,为了加快速度,可以设置编译的核数,如mingw32-make -j 4,只需要十分钟左右即可编译完成
这里写图片描述
图9:编译开始

这里写图片描述
图10:编译完成结果图 
输入mingw32-make install命令并回车,开始安装,该过程较快

这里写图片描述
图11:安装完成

这里写图片描述
图12:生成目标文件夹下的install文件夹即为安装文件夹

这里写图片描述 
图13: OpenCV安装文件,即上一步编译安装生成的install文件夹内部文件结构 

然后添加环境变量到PATH:D:\Soft\opencv3\install\x86\mingw\bin

第五步:测试

新建一个MainWindow的工程,然后在.pro文件最后添加以下代码(注意opencv和opencvbuild的路径要和自己设置的一致)

INCLUDEPATH += D:\Soft\opencv3\opencv\build\includeLIBS += D:\Soft\opencv3\install\bin\libopencv_core320.dllLIBS += D:\Soft\opencv3\install\bin\libopencv_highgui320.dllLIBS += D:\Soft\opencv3\install\bin\libopencv_imgcodecs320.dllLIBS += D:\Soft\opencv3\install\bin\libopencv_imgproc320.dllLIBS += D:\Soft\opencv3\install\bin\libopencv_features2d320.dllLIBS += D:\Soft\opencv3\install\bin\libopencv_calib3d320.dll


为了保证库的完整性,也可以用以下的方法,将全部的静态库和动态库添加进来(注意路径要和自己的保持一致):

INCLUDEPATH += C:\opencv\opencv\build\include \
               C:\opencv\opencv\build\include\opencv \
               C:\opencv\opencv\build\include\opencv2 \
LIBS += -LC:\opencvbuild\install\x86\mingw\lib\libopencv_*.a
LIBS += -LC:\opencvbuild\bin\libopencv_*.dll


然后在mainwindow.cpp里修改为以下代码:


#include "mainwindow.h"#include "ui_mainwindow.h"#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>MainWindow::MainWindow(QWidget *parent) :    QMainWindow(parent),    ui(new Ui::MainWindow){    ui->setupUi(this);    // read an image    cv::Mat image = cv::imread("d://1.jpg", 1);    // create image window named "My Image"    cv::namedWindow("My Image");    // show the image on window    cv::imshow("My Image", image);}MainWindow::~MainWindow(){    delete ui;}
注意要在d盘中放一张1.jpg的图片,然后编译后即可实现图片的显示