学习笔记:在linux-ubuntu中OpenCV在QT5中的配置

一、背景介绍

网上有许多的OpenCV在QT中的配置教程,但随后会发现,每一篇教程的方法都有所不同。这可能是OpenCV版本的更替造成的。本文梳理了一下配置流程还有自己的理解。

二、创建一个QT工程

新建qt工程
学习笔记:在linux-ubuntu中OpenCV在QT5中的配置
项目名称为samp(随便起),然后一路点击下一步
学习笔记:在linux-ubuntu中OpenCV在QT5中的配置
创建好的工程如下图所示
学习笔记:在linux-ubuntu中OpenCV在QT5中的配置

三、在pro文件中添加代码

在pro文件中需要添加OpenCV头文件的路径,还有OpenCV的库

3.1 找到你的OpenCV头文件路径

头文件均为.hpp或者.h格式,如何找到他们呢?我们可以通过查找其中的一个文件(例如bgsegm.hpp)
学习笔记:在linux-ubuntu中OpenCV在QT5中的配置
在命令行中输入

locate bgsegm.hpp

可以得到
学习笔记:在linux-ubuntu中OpenCV在QT5中的配置
所以头文件的路径为/usr/local/include/opencv4

3.2 找到你的OpenCV库

库所在的文件夹里会有一大堆.so格式的文件,在我的ubuntu里,库文件在/usr/local/lib/下
学习笔记:在linux-ubuntu中OpenCV在QT5中的配置

3.3 输入代码

学习笔记:在linux-ubuntu中OpenCV在QT5中的配置

INCLUDEPATH += /usr/local/include/opencv4   #添加头文件路径

LIBS += /usr/local/lib/libopencv_*          #添加库

(libopencv_*中的“ * ”表示省略,这行代码将opencv的所有库添加了进去)

四、写一个图片显示程序

本部分引用https://blog.****.net/qq_31674679/article/details/80026066 作者:Peace_day
OpenCV在QT中的库基本配置完成,现在通过一个简单的图片显示程序加深理解。

4.1 设计界面

双击mainwindow.ui
学习笔记:在linux-ubuntu中OpenCV在QT5中的配置
进入交互界面,并将一个Push Button和一个Label拖进主窗口
学习笔记:在linux-ubuntu中OpenCV在QT5中的配置

4.2 编写mainwindow.cpp的代码

右键点击PushButton,再点击Go to slot,选择clicked(),点击OK
学习笔记:在linux-ubuntu中OpenCV在QT5中的配置
在函数体里输入(函数名可能不一样,你原本是哪样就是哪样,不需要做修改)

 QString fileName=QFileDialog::getOpenFileName(this,tr("Open Image"),
                                    ".",tr("Image Files(*.png *.jpg *.jpeg)"));

        image=cv::imread(fileName.toStdString());      
        QImage img = QImage((const unsigned char*)(image.data),
                                image.cols, image.rows, QImage::Format_RGB888);
            //设定图像大小自适应label窗口的大小
            img = img.scaled(ui->label->size(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
            ui->label->setPixmap(QPixmap::fromImage(img));

学习笔记:在linux-ubuntu中OpenCV在QT5中的配置

4.3 编写mainwindow.h头文件中的代码

转到mainwindow.h
学习笔记:在linux-ubuntu中OpenCV在QT5中的配置

#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/core/utility.hpp>

#include <QFileDialog>

cv::Mat image;

这里可以加深理解,我们需要调用的OpenCV的头文件为imgproc.hpp、highgui.hpp和utility.hpp。
以imgproc.hpp为例,这里添加的头文件路径为opencv2/imgproc.hpp,结合3.3节添加的头文件路径/usr/local/include/opencv4,
则文件的最终路径为/usr/local/include/opencv4/opencv2/imgproc.hpp

4.4 运行程序

先qmake一下
学习笔记:在linux-ubuntu中OpenCV在QT5中的配置
再点击左下角的绿色三角运行程序
学习笔记:在linux-ubuntu中OpenCV在QT5中的配置
结束