Ubuntu16.04 openCV3.1安装

环境: Ubuntu 16.04 64bit ,openCV 3.1.0


安装依赖

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

optional:

sudo apt-get install checkinstall yasm libtiff5-dev libjpeg-dev libjasper-dev libdc1394-22-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils libeigen3-dev


下载openCV

      到官网http://opencv.org/downloads.html下载openCV 3.1.0,连接可能有点慢。下载完后解压。


安装openCV

cd opencv-3.1.0

mkdir build

cd build

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..


    在此过程中,很有可能会出现错误:ICV: Downloading ippicv_linux_20151201.tgz 超时。我只有一次在网速非常非常快的环境成功Download ippicv_linux_20151201.tgz。

    据说这个部分可有可无,不过我还是选择去网上下载。直接搜索文件名即可,我通常在这里下载。

    下载完后替换opencv-3.1.0/3rdparty/ippicv/downloads/linux-*目录下的同名文件,重新cmake。


optional(显示指定一些编译内容):

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -D ENABLE_FAST_MATH=1 -D WITH_CUDA=ON -D CUDA_FAST_MATH=1 -D WITH_CUBLAS=1 -D CUDA_GENERATION=Auto -D WITH_GSTREAMER_0_10=OFF ..

    

    然后在build目录下:

make -j4

-j4表示四核运算,可根据电脑配置选择。

sudo make install


会有在make -j4遇到G++版本太高的问题,我安装多次,遇到过一次。

修改opencv-3.1.0目录下的CMakeList.txt文件,在开头加入set(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -D_FORCE_INLINES”)然后重新cmake,再make -j4,再make install


如遇到‘NppiGraphcutState’ has not been declared,是opencv与cuda8.0不兼容导致的。之前的opencv版本都会有问题,opencv2.4.13没有问题,这是唯一一个2016年发布的版本。解决方法:

在path/to/opencv/modules/cudalegacy/src/graphcuts.cpp中,把

          #if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)

改为

         #if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION>=8000)

参考:Ubuntu16.04+CUDA8.0+caffe配置


设置Shared Library

    另外在之后的使用中(比如我在编译caffe的时候)可能会出现找不到库的情况,这是因为没有把库放到一个能找到的位置。

    该部分参考:openCV program compile error “libopencv_core.so.2.4: cannot open shared object file: No such file or directory” in ubuntu 12.04

    在/usr/local目录下查找opencv库所在位置,我在解答看到有人是在/usr/local/opencv和/usr/local/opencv2下面,但我这里是在/usr/local/lib下找到的。如果找不到,可尝试:

sudo updatedb && locate libopencv_core.so.3.1

3.1为版本号。

      新建文件:

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

     写入地址/usr/local/lib,并保存。

     更新:

sudo ldconfig -v

你可能感兴趣的:(openCV,Linux)