ubuntu16.04安装opencv3.2最详细版本

ubuntu16.04安装opencv3.2

1.安装官方给的opencv依赖包

$ 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 # 处理图像所需的包
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
$ sudo apt-get install libxvidcore-dev libx264-dev # 处理视频所需的包
$ sudo apt-get install libatlas-base-dev gfortran # 优化opencv功能
$ sudo apt-get install ffmpeg

2.下载opencv3.2.0

这里需要下载opencv和opencv_contrib(后者会在cmake配置的时候用到),这是因为opencv3以后SIFT和SURF之类的属性被移到了contrib中,。

$ wget https://github.com/opencv/opencv/archive/3.2.0.zip # 从github上直接下载或者clone也可
$ wget https://github.com/opencv/opencv_contrib/archive/3.2.0.zip

3. 编译opencv

配置编译opencv (无NVIDIA CUDA版本)
将上述opencv包解压,然后cmake配置属性

$ cd opencv-3.2.0
$ mkdir build
$ cd build

a.编译无cuda版本的opencv

$ cmake -D CMAKE_BUILD_TYPE=RELEASE
-D CMAKE_INSTALL_PREFIX=/home/bobo/anaconda3/envs/tensorflow
-D INSTALL_PYTHON_EXAMPLES=ON
-D INSTALL_C_EXAMPLES=OFF
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.2.0/modules
-D PYTHON_EXCUTABLE=/home/bobo/anaconda3/envs/tensorflow/bin/python
-D WITH_TBB=ON
-D WITH_V4L=ON
-D WITH_QT=ON \
-D WITH_GTK=ON
-D WITH_OPENGL=ON
-D BUILD_EXAMPLES=ON … # cmake命令的使用方式:cmake [] 。如果命令报错的话可以试着把-D后面的空格去掉在执行一次。

b.编译cuda版本的opencv

cmake -D CMAKE_BUILD_TYPE=RELEASE
-D CMAKE_INSTALL_PREFIX=/usr/local
-D INSTALL_PYTHON_EXAMPLES=ON
-D INSTALL_C_EXAMPLES=OFF
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.2.0/modules
-D PYTHON_EXCUTABLE=/usr/bin/python
-D WITH_CUDA=ON \
-D WITH_CUBLAS=ON
-D DCUDA_NVCC_FLAGS="-D_FORCE_INLINES"
-D CUDA_ARCH_BIN=“6.1” \
-D CUDA_ARCH_PTX=""
-D CUDA_FAST_MATH=ON \
-D WITH_TBB=ON
-D WITH_V4L=ON
-D WITH_GTK=ON
-D WITH_OPENGL=ON
-D BUILD_EXAMPLES=ON …

注意: -D CUDA_ARCH_BIN=“6.1” \ # 这个需要去官网确认使用的GPU所对应的版本查看这里
-D WITH_QT=ON \ # 如果qt未安装可以删去此行;若因为未正确安装qt导致的Qt5Gui报错,可将build内文件全部删除后重新cmake,具体可以参考这里

c.这个编译比较简单:(要求不高的话使用这个即可)

sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH= …
直接成功(ok)

画重点:在安装cmake -D这步时,由于网络原因会出现下载不下来的情况:

1.ubuntu下安装opencv3.2出现-- ICV: Downloading ippicv_linux_20151201.tgz…

ubuntu下安装opencv3.2出现-- ICV: Downloading ippicv_linux_20151201.tgz…
之后就会提示很多错误。
需要自己下载ippicv_linux_20151201.tgz
然后复制替换到
opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e文件下

2. Failed to download v3.1.0/protobuf-cpp-3.1.0.tar.gz. Status=7;“Couldn’t connect to server”

替换路径类似:\opencv_extra\opencv_contrib-3.2.0\modules\dnn.download\bd5e3eed635a8d32e2b99658633815ef\v3.1.0目录下的protobuf-cpp-3.1.0.tar.gz(亲测有效)

3.CMake Error at /home/bobo/opencv-3.2.0/cmake/OpenCVUtils.cmake:1047 (message):

Failed to download vgg_generated_48.i. Status=35;“SSL connect error”

替换路径的位置
ubuntu16.04安装opencv3.2最详细版本_第1张图片

4.继续运行

$ sudo make -j8 #根据自己电脑的性能选择(一般设为j4)

sudo make时出错:

make2: *
[modules/core/CMakeFiles/cuda_compile.dir/src/cuda/./cuda_compile_generated_gpu_mat.cu.o]
Error 1 make1: [modules/core/CMakeFiles/opencv_core.dir/all] Error 2

解决方案:

该情况应该是由于NVCC版本比较新引起的
解决办法是将下面这段语句加到Opencv根目录下的CMakeList文件的开头:

set(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -D_FORCE_INLINES”)

如下图所示:
ubuntu16.04安装opencv3.2最详细版本_第2张图片

重试了几次都出现相同问题,建议重新cmake一下,并确保opencv-contrib-3.2.0位于opencv-3.2.0下边。

最后终于成功啦!!!!

执行安装命令
sudo make install

加入到动态链接库
sudo ldconfig

运行出错:
/sbin/ldconfig.real: /usr/local/cuda/lib64/libcudnn.so.7 不是符号连接

解决方案:
在sudo ldconfig时遇到
usr/local/cuda-9.0/lib64/libcudnn.so.7 不是符号连接的问题,解决办法也很简单,重新建立链接并删除原链接
首先找到usr/local/cuda-9.0/lib64/目录,搜索 libcudnn 然后发现
两个文件
libcudnn.so.7 和libcudnn.so.7.2.1 理论上只有一个libcudnn.so.7.2.1

(重新打开一个终端)终端执行
sudo ln -sf /usr/local/cuda-9.0/lib64/libcudnn.so.7.2.1 /usr/local/cuda-9.0/lib64/libcudnn.so.7

sudo ldconfig时就可以了,这时候会发现usr/local/cuda-9.0/lib64/目录下只有
libcudnn.so.7.2.1 文件了,libcudnn.so.7消失了。

对应的libcudnn.so.7.2.1版本号找不到的,可以通过运行sudo ldconfig -v报错信息中,搜索一下,有对应的错误:
在这里插入图片描述

5.安装完成后通过查看 opencv 版本验证是否安装成功:

pkg-config --modversion opencv

出现版本号就成功啦!!

你可能感兴趣的:(ubuntu16.04安装opencv3.2最详细版本)