本篇教程是介绍qt的opencv配置,不是作业,如果作业要做qt+opencv的,可以参考这个配置,然后根据自己的想法修改项目文件。

第三章make耗时1~2小时
按照本篇做完,就可以百度图像处理相关的C++版的项目,移植到自己的项目文件里,再在主窗口加几个功能按钮、显示label,一个作业就完成了。我觉得把数字图像处理pycharm或者matlab作业改成c++版本的也行。

一、前提

如果没有安装Qt的可以参照Linux版Qt5.12.0安装教程,ubuntu16.04

1、安装依赖

先安装这些,下载慢或者下载失败可以试试换镜像或者连vpn

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

如果报错信息中最后一行有“–fix-missing”那就加上
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev --fix-missing

sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

2、克隆opencv库

源项目地址:
https://github.com/opencv/opencv
Github 镜像仓库 🚀:
https://gitcode.net/opencv/opencv?utm_source=csdn_github_accelerator

下面使用git指令克隆镜像仓库
我是在/home/steve/文件夹下运行的

git clone https://gitcode.net/opencv/opencv.git

二、执行cmake

克隆完成后进入opencv文件夹,新建build文件夹,进入build文件夹执行cmake

cd opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

注意cmake 后面有两个"."
在这里插入图片描述

三、make&&make install和配置

sudo make

在这里插入图片描述
sudo make install
在这里插入图片描述
在这里插入图片描述配置opencv

sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig

四、新建QT工程

1、新建

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、qt中项目文件的配置

在.pro文件中加入以下代码

INCLUDEPATH += /usr/local/include \
               /usr/local/include/opencv \
               /usr/local/include/opencv4
 
LIBS += /usr/local/lib/libopencv_highgui.so \
        /usr/local/lib/libopencv_core.so    \
        /usr/local/lib/libopencv_imgproc.so \
        /usr/local/lib/libopencv_imgcodecs.so

LIBS对应的/user/local/lib文件夹,可以去看看,如果你的项目用到了摄像头,就需要再加一行/usr/local/lib/libopencv_videoio.so
如果你的项目用到了深度神经网络,就需要再加一行/usr/local/lib/libopencv_dnn.so;

在这里插入图片描述

3、在main.cpp中修改代码

在这里插入图片描述
下面是不包括默认窗口的代码

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
using namespace cv;
 
int main()
{
    Mat img = imread("/home/steve/qtproject/test/pika.jpg");
    imshow("pika", img);
    waitKey(0);
    return 0;
}

imread中的图片路径。如果要用相对路径pika.png,就需要把图片复制到下面Debug文件夹中。上面的代码使用绝对路径。
在这里插入图片描述

1可以复制上面的代码,覆盖掉main.cpp
2也可以只复制红框中的代码加进去,这样运行会出现两个窗口,一个是主窗口,另一个是opencv 的imshow打开的窗口

如果你的项目有多个cpp文件会用到这几个#include 和namespace,你可以把第一个红框的代码复制到Headers 里面的头文件hpp中,就不用重复引用了。

在这里插入图片描述

3、点击左下方的绿色按钮运行

在这里插入图片描述

对主窗口MainWindow的界面设计方法大概有两种
一种是 点击Forms中的 ui文件,进入相应的设计界面,拖拽组件,设置样式、槽函数。
另一种是在mainwindow.cpp中使用代码添加组件

讲一下第二种比如
新建一个label,需要#include
Qlabel的使用方法按住F1即可查看帮助文档,所有函数都在帮助文档里有

 	setWindowTitle("QT5.12+OpenCV4+TestOpenImg");
    Mat src = imread("/home/steve/qtproject/test/pika.jpg");
    Mat img;
    cvtColor(src, img, COLOR_BGR2RGB);
    QLabel *label=new QLabel(this);
    label->setPixmap(QPixmap::fromImage(QImage(img.data, img.cols, img.rows, img.step, QImage::Format_RGB888)));
    label->adjustSize();

在这里插入图片描述

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐