OpenCV+QT5.10.0配置 如何编译OpenCV3.4.0
1、安装QT5.10.0
这个不用多说,相信大家都会。
在线安装:https://www.qt.io/download
或者下载离线安装包:http://download.qt.io/official_releases/qt/
2、下载OpenCV
https://github.com/opencv/opencv/releases/download/3.4.0/opencv-3.4.0-vc14_vc15.exe
从上面的网址下载并安装(其实就是解压缩),我的路径是C:\opencv,安装完毕后该目录下还有build和sources两个文件夹。其中的内容如下:
build:头文件以及编译好的库文件,包括lib和dll。
sources:OpenCV的源代码,可以自己重新进行编译。
3、配置QT
3.1 新建工程
按照下图所示,建立一个 QT Console Application
3.2 设置编译平台
所有设置都按照默认选项即可,只有“Kits”例外。
因为我安装了VS2017,并且OpenCV5.10.0安装后所提供的库只有vc14和vc15,如下图所示

所以这里我的Kits只选择了“Desktop QT5.10.0 MSVC2017 64bit”,如下图所示。关于如何编译OpenCV生成自己需要的库,看参考《如何编译OpenCV3.4.0》

3.3 设置pro文件
在项目的pro文件中添加下面2行:
INCLUDEPATH += "C:/opencv/build/include"
LIBS+=C:/opencv/build/x64/vc15/lib/opencv_world340d.lib<br /><br />
QT -= gui CONFIG += c++ console CONFIG -= app_bundle # The following define makes your compiler emit warnings if you use # any feature of Qt which as been marked deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the # deprecated API in order to know how to port your code away from it. DEFINES += QT_DEPRECATED_WARNINGS # You can also make your code fail to compile if you use deprecated APIs. # In order to do so, uncomment the following line. # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0. SOURCES += main.cpp INCLUDEPATH += "C:/opencv/build/include" LIBS+=C:/opencv/build/x64/vc15/lib/opencv_world340d.lib
3.4 编写代码
编辑main.cpp(该代码源自OpenCV Samples)
#include <QCoreApplication>
#include "opencv2/imgcodecs.hpp"
#include "opencv2/highgui.hpp"
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
double alpha = 0.5; double beta; double input;
Mat src1, src2, dst;
//![load]
/// Read images ( both have to be of the same size and type )
src1 = imread("LinuxLogo.jpg");
src2 = imread("WindowsLogo.jpg");
//![load]
if (src1.empty()) { cout << "Error loading src1" << endl; return -; }
if (src2.empty()) { cout << "Error loading src2" << endl; return -; }
//![blend_images]
beta = (1.0 - alpha);
addWeighted(src1, alpha, src2, beta, 0.0, dst);
//![blend_images]
//![display]
imshow("Linear Blend", dst);
return a.exec();
}3.5 准备图片
准备2张图片(LinuxLogo.jpg和WindowsLogo.jpg),并拷贝到编译生成目录(我的是build-QTOpenCV-Desktop_Qt_5_10_0_MSVC2017_64bit-Debug)
4、测试
运行结果应该如下图所示


