【ubuntu+opencv3】ubuntu16.04+qt5+opencv3.2.0编译与安装

在网上找了很多资料,终于把opencv3.2.0在ubuntu16.04下安装成功了,由于使用qt作为开发工具,这里也顺便介绍下qt的安装与配置。


1、依赖库的安装

执行如下命令:

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev


2、安装cmake

执行如下命令:

sudo apt-get install cmake


3、安装pkg-config

执行如下命令:

sudo apt-get install pkg-config


4、安装qt

执行如下命令:

 sudo apt-get install cmake qt5-default qtcreator


5、下载opencv源码

在opencv官网(http://opencv.org/opencv-3-2.html)下载opencv源码。

【ubuntu+opencv3】ubuntu16.04+qt5+opencv3.2.0编译与安装_第1张图片


6、解压

将源码拷到编译目录下,执行如下命令:

tar xvf opencv-3.2.0.tar.gz

并执行下面命令,进入解压文件:

cd opencv-3.2.0/


7、编译与安装

执行如下命令,在源码文件夹下新建编译文件夹build,进入build,使用cmake进行编译,指定安装文件夹前缀(CMAKE_INSTALL_PREFIX

mkdir build   

cd build  
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. 


注意:cmake编译时,会临时从网络上下载第三方依赖库,因此要保证网络的畅通,如果网速过慢,长时间下载不完,cmake也会报错,经常会用到的是ippicv_linux_20151201.tgz。

【ubuntu+opencv3】ubuntu16.04+qt5+opencv3.2.0编译与安装_第2张图片

如果长时间下载不成功,可以自行下载(下载地址),然后手动放入opencv源码文件夹下的3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e/文件夹中,再使用cmake进行编译。


Cmake编译成功后,执行如下命令,进行编译和安装:

make
sudo make install


8、配置

在/etc/ld.so.conf.d 目录下增加一个conf文件(可以命名为 opencv.conf),添加/usr/local/lib(这个跟安装目录有关, {CMAKE_INSTALL_PREFIX}/lib)

保存,退出后,执行如下命令:

sudo ldconfig


接着,执行如下命令

sudo gedit /etc/bash.bashrc

在最后添加环境变量:

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

保存,退出

至此,opencv3.2.0配置安装完成。下面在qt下进行测试。


9、测试

打开qtcreator,新建一个控制台程序。

将如下代码考入mian.cpp文件中:

//#include 
#include 

int main(/*int argc, char *argv[]*/)
{
    //QCoreApplication a(argc, argv);

    cv::Mat image = cv::imread("/home/philos/work/Images/Hepburn.png", cv::IMREAD_COLOR);
    cv::imshow("Hepburn",image);

    cv::waitKey(0);

    return 0;

    //return a.exec();

}

然后修改 .pro文件中的内容,如下:

QT += core
QT -= gui

TARGET = opencv_test
CONFIG += console
CONFIG -= app_bundle

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 \
        /usr/local/lib/libopencv_imgcodecs.so

TEMPLATE = app

SOURCES += main.cpp

注意,使用opencv3.2.0,一定要定要添加/usr/local/lib/libopencv_imgcodecs.so,否则编译时会报如下错误

:-1: error: main.o: undefined reference to symbol 'cv::imread(cv::String const&, int)'
:-1: error: note: 'cv::imread(cv::String const&, int)' is defined in DSO /usr/local/lib/libopencv_imgcodecs.so.3.2 so try adding it to the linker command line
/usr/local/lib/libopencv_imgcodecs.so.3.2:-1: error: could not read symbols: Invalid operation
:-1: error: collect2: ld returned 1 exit status

保存,运行,如下:

【ubuntu+opencv3】ubuntu16.04+qt5+opencv3.2.0编译与安装_第3张图片


2017.06.09






你可能感兴趣的:(OpenCV,Qt,Ubuntu)