搭建 Ubuntu16.04 + QT 5.12 +openCV4.0.1 开发环境

【1】 opencv github地址

https://github.com/opencv/opencv
选择release 版本 4.0.1下载源码 Source code(tar.gz)

【2】 源码编译

1. 解压到目录 ~/opencv-4.0.1

2.创建 安装目录opencv 和构建目录 build

cd  ~/opencv-4.0.1
sudo mkdir opencv build 

3.指定cmake选项,配置release 和安装目录

cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/home/wmx/opencv-4.0.1/opencv \
-S ./ \
-B build/

4. 指定多线程编译,并且安装

cd build
make -j32
sudo  make install

5 添加库环境变量

gedit  .bashrc

加入

###------------ADD OPENCV LIB
export LD_LIBRARY_PATH=/home/wmx/opencv-4.0.1/opencv/lib:$LD_LIBRARY_PATH

使配置生效

source .bashrc

【3】创建Qt 工程

在pro 中加入库

#--add OPENCV include
INCLUDEPATH += -I /home/wmx/opencv-4.0.1/opencv/include/opencv4
DEPENDPATH +=/home/wmx/opencv-4.0.1/opencv/include/opencv4

INCLUDEPATH += -I /home/wmx/opencv-4.0.1/opencv/include
DEPENDPATH +=/home/wmx/opencv-4.0.1/opencv/include

 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_videoio
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_video
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_stitching
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_photo
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_objdetect
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_ml
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_imgproc
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_imgcodecs
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_highgui
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_gapi
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_flann
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_features2d
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_dnn
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_core
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_calib3d

源码:

pro文件:

QT += quick
CONFIG += c++11

# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Refer to the documentation for the
# deprecated API to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if it uses 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.0

SOURCES += \
        main.cpp

RESOURCES += qml.qrc

# Additional import path used to resolve QML modules in Qt Creator's code model
QML_IMPORT_PATH =

# Additional import path used to resolve QML modules just for Qt Quick Designer
QML_DESIGNER_IMPORT_PATH =


#--add OPENCV include
INCLUDEPATH += -I /home/wmx/opencv-4.0.1/opencv/include/opencv4
DEPENDPATH +=/home/wmx/opencv-4.0.1/opencv/include/opencv4

INCLUDEPATH += -I /home/wmx/opencv-4.0.1/opencv/include
DEPENDPATH +=/home/wmx/opencv-4.0.1/opencv/include

 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_videoio
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_video
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_stitching
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_photo
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_objdetect
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_ml
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_imgproc
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_imgcodecs
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_highgui
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_gapi
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_flann
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_features2d
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_dnn
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_core
 LIBS += -L /home/wmx/opencv-4.0.1/opencv/lib/ -lopencv_calib3d

main.cpp 文件

#include 
#include 
#include 

//-----opencv
#include "opencv2/core/cvdef.h"
#include "opencv2/core/hal/interface.h"
#include "opencv2/core.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/opencv.hpp"

using namespace cv;
//-----opencv

int main(int argc, char *argv[])
{
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);

    QGuiApplication app(argc, argv);

//      cv::Mat image = cv::imread("/home/wmx/wmx-workspace/testCV/testCV/dog.jpg", cv::IMREAD_COLOR);
//      cv::imshow("mytestcv",image);
//      cv::waitKey(0);


      //窗口名称
       QString windowName = " my opencv test";
       //图像名称
       QString imgFile = "/home/wmx/wmx-workspace/testCV/testCV/dog.jpg";
       //读入图像
       cv::Mat image = cv::imread(imgFile.toStdString());
       //如果无法读取图形
       if(!image.data)
       {
           qDebug() << "无法打开图像文件";
           system("PAUSE");//暂停窗口
           return -1;
       }
       //创建一个新窗口
       cv::namedWindow(windowName.toStdString());
       //将图像显示都新创建的窗口中
       cv::imshow(windowName.toStdString(),image);
       //等待,直到用户按任意键时退出
       cv::waitKey(0);

    return app.exec();
}

你可能感兴趣的:(ubuntu,QT/QML)