参考:http://blog.csdn.net/u010189457/article/details/66478574?locationNum=2&fps=1
参考:https://wiki.qt.io/How_to_setup_Qt_and_openCV_on_Windows
一定要注意版本搭配,之前试过好多版本的没有成功,最后按照以下版本配置成功,以下路径是参考以上链接中的进行设置,也可以按照自己的实际情况修改路径
========20210710更新=============
opencv 安装最简单的方法就是执行可执行文件,生成 opencv 路径,目录结构如下所示,只需要把 build 里边的 x64\vc15\lib 添加到环境变量中即可,不要使用下边 cmake 源码安装的方法
工具版本:
- - Qt5.8.0:qt-opensource-windows-x86-mingw530-5.8.0.exe
- - Opencv3.2:OpenCV-3.2.0-vc14.exe
- - CMake:cmake-3.8.0-rc3-win64-x64.msi (注意:要根据你电脑的系统位数来选择,64位系统选x64,32为系统选x86)
第一步:安装Qt、CMake、解压OpenCV
Qt默认安装即可;Cmake要选择将环境变量添加到所有用户上;OpenCV解压到工作路径中就算安装完成
需要记住三者的安装位置,后边都要用到
第二步:配置环境变量
注:此时需要使环境变量生效,有两种方式:
- 设置环境变量后重启电脑
- 打开DOS终端, 如果是设置环境变量“PATH”,则在修改完成后,在DOS窗口命令行中输入:set PATH=C: ,然后关闭DOS窗口。再次打开DOS窗口,输入:echo %PATH% ,可以发现“我的电脑”->“属性”->“高级”->“环境变量”中设置的 PATH 值已经生效。(DOS窗口中的环境变量只是Windows环境变量的一个副本,通过对副本的修改可以引发Windows环境变量的刷新,所以只是环境变量刷新了一次,不用担心DOS窗口中的修改会使得系统环境变量的值变成了”C:”)
第三步:CMake操作
- Where is the source code:选择OpenCV解压的源文件文件夹位置;
- Where to build the binaries:选择自定义的空文件夹用于保存生成对象
点击左下角Configure按钮,会出现如下界面
点击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
再次点击左下角Configure按钮
再次点击左下角Configure按钮
然后点击左下角Generate按钮
CMake操作结束,关闭CMake的操作界面
第四步:mingw32-make操作
打开CMD窗口,进入生成OpenCV目标文件的文件夹,输入mingw32-make开始编译,需要半个小时左右,为了加快速度,可以设置编译的核数,如mingw32-make -j 4,只需要十分钟左右即可编译完成
输入mingw32-make install命令并回车,开始安装,该过程较快
安装完成
生成目标文件夹下的install文件夹即为安装文件夹
OpenCV安装文件,即上一步编译安装生成的install文件夹内部文件结构
然后添加环境变量到PATH:D:\Soft\opencv3\install\x86\mingw\bin
第五步:测试
新建一个MainWindow的工程,然后在.pro文件最后添加以下代码(注意opencv和opencvbuild的路径要和自己设置的一致)
INCLUDEPATH += D:\Soft\opencv3\opencv\build\include
LIBS += D:\Soft\opencv3\install\bin\libopencv_core320.dll
LIBS += D:\Soft\opencv3\install\bin\libopencv_highgui320.dll
LIBS += D:\Soft\opencv3\install\bin\libopencv_imgcodecs320.dll
LIBS += D:\Soft\opencv3\install\bin\libopencv_imgproc320.dll
LIBS += D:\Soft\opencv3\install\bin\libopencv_features2d320.dll
LIBS += 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的图片,然后编译后即可实现图片的显示