Ubuntu系统中集成opencv到qt

Posted by Walk in the cloud on November 22, 2018

在Linux系统中,QT是一个很不错的C++的框架,并提供了IDE。很多想学习OpenCV的朋友都想把OpenCV集成到QT中,本文就简单介绍一下怎样在QT中集成OpenCV。

编译安装OpenCV

参考官方的教程 ,安装依赖包的时候会遇到无法找到libjasper-dev包的问题。在Ubuntu中执行如下命令即可:

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

编写QT测试程序

创建Console程序,在Project文件中加入如下配置:

INCLUDEPATH += /usr/local/include/opencv4
DEPENDPATH += /usr/local/include/opencv4

LIBS += -L/usr/local/lib/   \
                -lopencv_calib3d    \
                -lopencv_core    \
                -lopencv_dnn    \
                -lopencv_features2d    \
                -lopencv_flann    \
                -lopencv_gapi    \
                -lopencv_highgui    \
                -lopencv_imgcodecs    \
                -lopencv_imgproc    \
                -lopencv_ml    \
                -lopencv_objdetect    \
                -lopencv_photo    \
                -lopencv_stitching    \
                -lopencv_videoio    \
                -lopencv_video

请注意我的OpenCV的安装目录是/usr/local,如果你安装在其他路径上,请把INCLUDEPATH和DEPENDPATH变量修改为你的安装路径。 在main.cpp文件中包含OpenCV的头文件,和使用cv命名空间。

#include "opencv2/opencv.hpp"

using namespace cv;

在main函数中加入如下代码:

    Mat img = cv::imread(argv[1]); //加载命令行指定的图片  
    
    if(img.empty())
    {
        return 0;
    }

    imshow("实例图片", img);

如果一切正常将会输出如下图片。 Hell world
注意QT有自己的消息循环,不需要用轮训等待的方式显示图片。你可以在这里下载。