【qt】ubuntu+openCV2.4.9+qt5.7.0安装配置

原文:http://blog.csdn.net/shawn_ht/article/details/40795039

对原文精简,以及自己遇到的问题补充说明,这里先装qt后装opencv,因为需要WITH_QT

参考:http://blog.csdn.net/hosea1008/article/details/50724800

一、Ubuntu安装

ubuntu是Linux的一个发行版本,我想对linux有所了解的人应该都知道,我们直接到官网上下载就好了,是免费使用的。

官网下载链接:https://www.ubuntu.com/download/desktop

这里我用的是最新的ubuntu16.04


二、qt安装

下载链接:http://ftp.vim.org/languages/qt/archive/qt/5.7/5.7.0/

文件名称:qt-opensource-linux-x64-5.7.0.run  

进入到qt下载目录,输入指令:

sudo chmod 777 * -R
执行指令:

./qt-opensource-linux-x64-5.7.0.run
出现熟悉的安装页面,安装的时候全选

【qt】ubuntu+openCV2.4.9+qt5.7.0安装配置_第1张图片


安装完成后到/home/Qt5.7.0/Tools/QtCreator/bin下右键qtcreator,选择make link,剪切到桌面上。


此时其实还qmake还找不到,添加环境变量

gedit  /home/kevin/.bashrc
添加:(注意修改为自己的用户名)

export QT5_ROOT=/home/kevin/Qt5.7.0/5.7/gcc_64
export PKG_CONFIG_PATH=${QT5_ROOT}/lib/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=${QT5_ROOT}/lib:$LD_LIBRARY_PATH
export CMAKE_MODULE_PATH=${QT5_ROOT}/lib/cmake:$CMAKE_MODULE_PATH
export PATH=${QT5_ROOT}/bin:$PATH
执行指令使配置生效:

source  /home/kevin/.bashrc
此时输入

qmake --version
查询是否生效



三、OpenCV安装

首先找到opencv的官网把最新的openCV2.4.9包下载到ubuntu里,

官网下载链接:http://opencv.org/releases.html

【qt】ubuntu+openCV2.4.9+qt5.7.0安装配置_第2张图片


输入指令解压

unzip opencv-2.4.9.zip

解压后不用着急,你会看到解压目录下有一堆文件,这就是我们的openCV库了,但是现在还没法用,得用cmake进行编译才行。

cmake就是一个跨平台的编译器,在ubuntu下我们只需要输入一行指令即可安装

sudo apt-get install cmake
sudo apt-get install cmake-qt-gui

查看版本,测试是否安装成功:

cmake --version


cmake安装完毕后在还得预装一些其他的包,通过apt获取就好:

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

注意:里面的P是小写,但是发布的时候原文直接转换成大写了,直接复制执行会导致gtk2.0没有安装成功,后面的opencv就需要重新编译了

开始编译openCV了,新建个building文件夹(这里你取什么名字都无所谓)用于存放编译后的文件:

mkdir building

然后执行指令

sudo cmake-gui

选择好两个路径


点击Configure,默认即可。

接着,修改3个地方,分别是MAKE_BUILD_TYPE为Releaseusr/local是lib文件的存放目录,

WITH_QT打勾,WITH_TIFF去勾

【qt】ubuntu+openCV2.4.9+qt5.7.0安装配置_第3张图片

【qt】ubuntu+openCV2.4.9+qt5.7.0安装配置_第4张图片

点击Generate,最后进入building目录输入指令:

sudo make

【qt】ubuntu+openCV2.4.9+qt5.7.0安装配置_第5张图片

接着:

sudo make install

【qt】ubuntu+openCV2.4.9+qt5.7.0安装配置_第6张图片

这样就编译完成了,你可以在usr/local/lib下看到编译好的opencv函数库

【qt】ubuntu+openCV2.4.9+qt5.7.0安装配置_第7张图片

最后还得配置好opencv的环境变量:

sudo gedit /etc/ld.so.conf.d/opencv.conf

【qt】ubuntu+openCV2.4.9+qt5.7.0安装配置_第8张图片

保存退出后执行:

sudo ldconfig
接着配置环境变量:

sudo gedit /etc/bash.bashrc

去到这个文件的最后,写入 

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH

【qt】ubuntu+openCV2.4.9+qt5.7.0安装配置_第9张图片

至此opencv配置完毕。


四、opencv测试案例

我们先打开qt creator,新建一个工程,这里选择控制台程序就好了:

【qt】ubuntu+openCV2.4.9+qt5.7.0安装配置_第10张图片

修改test.pro文件:

QT += core  
  
QT -= gui  
  
CONFIG += c++11

TARGET = test  
CONFIG += console  
CONFIG -= app_bundle  
  
TEMPLATE = app  
  
  
INCLUDEPATH += /usr/local/include          \  
               /usr/local/include/opencv   \  
               /usr/local/include/opencv2  
  
LIBS += /usr/local/lib/libopencv_highgui.so \  
        /usr/local/lib/libopencv_core.so    \  
        /usr/local/lib/libopencv_imgproc.so  
  
SOURCES += main.cpp  

LIBS写全的话是有这些:

LIBS += /usr/local/lib/libopencv_calib3d.so \
/usr/local/lib/libopencv_core.so \
/usr/local/lib/libopencv_features2d.so \
/usr/local/lib/libopencv_flann.so \
/usr/local/lib/libopencv_highgui.so \
/usr/local/lib/libopencv_imgcodecs.so \
/usr/local/lib/libopencv_imgproc.so \
/usr/local/lib/libopencv_ml.so \
/usr/local/lib/libopencv_objdetect.so \
/usr/local/lib/libopencv_photo.so \
/usr/local/lib/libopencv_shape.so \
/usr/local/lib/libopencv_stitching.so \
/usr/local/lib/libopencv_superres.so \
/usr/local/lib/libopencv_videoio.so \
/usr/local/lib/libopencv_video.so \
/usr/local/lib/libopencv_videostab.so


主要是将opencv函数库的引用加上

主函数main.cpp修改如下:

#include   
#include   
  
using namespace cv;  
  
int main()  
{    
    namedWindow( "src", WINDOW_AUTOSIZE );  
    Mat src1 = imread( "lena.jpg" );  

    imshow( "src", src1 );  
    waitKey(0);  

    return 0;
}  


然后在工程根目录下放张lena.jpg的图片,按ctrl+R即可编译运行即可

可以看到有toolbar了。

【qt】ubuntu+openCV2.4.9+qt5.7.0安装配置_第11张图片


你可能感兴趣的:(qt)