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

OpenCV+QT5.10.0配置如何编译OpenCV3.4.0

3.2 设置编译平台

所有设置都按照默认选项即可,只有“Kits”例外。

因为我安装了VS2017,并且OpenCV5.10.0安装后所提供的库只有vc14和vc15,如下图所示

OpenCV+QT5.10.0配置如何编译OpenCV3.4.0

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

OpenCV+QT5.10.0配置如何编译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)

OpenCV+QT5.10.0配置如何编译OpenCV3.4.0OpenCV+QT5.10.0配置如何编译OpenCV3.4.0

4、测试

运行结果应该如下图所示

OpenCV+QT5.10.0配置如何编译OpenCV3.4.0

相关推荐