Ubuntu下Qt5.9编译配置opencv3.3

环境准备:

Ubuntu18(64位)

Qt5.9(安装在Ubuntu18)

opencv3.3.zip

Ubuntu18和Qt5.9的安装在这里就不介绍了,直接进入正题

配置编译

1、首先确保安装好

gtk:跨平台图形用户界面库(GUI)GTK+ 的包装。

sudo apt-get install libgtk2.0-dev

或者

把opencv源码,/modules/highgui/src/windows.cpp 文件第583行和654行注释掉! 583 行: CV_NO_GUI_ERROR("cvshowImage") 654行:CV_NO_GUI_ERROR("cvWaitKey") 不然程序运行时会提示如下让先安装gtk+2.x之类的错误,应该是没有显示屏显示的原因。 “OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvNamedWindow”。

pkg:检索系统中安装库文件的信息,典型的是用作库的编译和连接。

sudo apt-get install pkg-config

cmake:构建并维护项目代码,产生可移植的makefile。

sudo apt-get install cmake-qt-gui

2、opencv解压

unzipe opencv3.3.0zip

3、编译

3.1 载入opencv

打开Qt-文件-打开文件或项目,选择解压后opencv3.3.0目录下的CMakeists.txt

(cmake的所有语句都写在一个CMakeLists.txt的文件中,CMakeLists.txt文件确定后,直接使用cmake命令进行运行,但是这个命令要指向CMakeLists.txt所在的目录,cmake之后就会产生我们想要的makefile文件,然后再直接make就可以编译出我们需要的结果了。)

点击open,开始载入

载入成功

3.2配置编译

3.2.1Cmake

点击项目,在CMake下找到CMAKE_INSTALL-PREFIXXIU修改存放编译后库文件和头文件的目录

修改后点击Apply Configuration Changes,粗体变斜体即生效。

3.2.2构建

点击详情,选择install

3.3.3编译

点击左下角最下面的锤子,开始编译

编译成功。

4、测试

4.1添加环境变量

使用opencv库之前先要添加环境变量

跳转到/etc/ld.so.conf.d/目录

新建opencv.conf

cd /etc/ld.so.conf.d
vim opencv.conf

添加安装编译好的opencv路径

usr/local/opencv3.3.0/opencv3.3.0/lib

保存之后查看

sudo ldconfig -v

有这些opencv的库文件则添加成功。

4.2 Qt测试

新建Qt工程

在.pro文件中添加opencv路径

INCLUDEPATH += /usr/local/opencv3.3.0/opencv3.3.0/include 
               /usr/local/opencv3.3.0/opencv3.3.0/include/opencv 
               /usr/local/opencv3.3.0/opencv3.3.0/include/opencv2 

LIBS += /usr/local/opencv3.3.0/opencv3.3.0/lib/libopencv_*

main.cpp中

#include "mainwindow.h"
#include <QApplication>
#include "opencv2/opencv.hpp"
#include "cv.h"

using namespace cv;
int main(int argc, char *argv[])
{

    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    Mat image=imread("/home/shijiu/Qt_program/test1/test.jpg");
    imshow("test",image);
    waitKey(0);
    return a.exec();
}

运行成功:

经验分享 程序员 微信小程序 职场和发展