ubuntu16.04安装opencv3.3.1

主要参考下列博文: 
1、http://blog.csdn.net/redmoon729/article/details/69986131 
Ubuntu16.04下安装opencv3 
2、http://blog.csdn.net/huangkangying/article/details/53406370 
OpenCV 3.1下载 ippicv_linux_20151201失败 
3、http://blog.csdn.net/scutjy2015/article/details/78662021 
ubuntu16.04 完整make安装opencv 3.2.0

一、ubuntu下卸载opencv步骤

进入build文件夹,命令行执行下列命令。如新安装,此步骤可跳过。

make uninstall
cd ..
sudo rm -r build
sudo rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv*

二、安装相关依赖库

(相关依赖库一定得装上)

sudo apt-get upgrade
sudo apt-get install build-essential cmake pkg-config
sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libgtk-3-dev
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install python3.5-dev
sudo apt-get install ffmpeg

还有部分依赖可以需要装:

# git : 版本控制
# gfortran fortran编译器
# yasm 汇编编译器
# ffmpeg 系统自带
sudo apt-get install checkinstall yasm gfortran git ffmpeg
sudo apt-get install libxvidcore4 libgtk-3-dev
sudo apt-get install libjpeg8-dev libjasper-dev
sudo apt-get install libtiff5-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev
sudo apt-get install libxine2-dev libv4l-dev
sudo apt-get install libqt4-dev libgtk2.0-dev libtbb-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libfaac-dev libmp3lame-dev libtheora-dev
sudo apt-get install libvorbis-dev libxvidcore-dev
sudo apt-get install libopencore-amrnb-dev libopencore-amrwb-dev
sudo apt-get install x264 v4l-utils

三、准备ippicv

安装过程中下载 ippicv_2017u3_lnx_intel64_general_20170822.tgz 的时间很长,甚至下载失败。ippicv 是一个并行计算库,事实上可以不安装。如果想不安装只需在下面第四步骤中配置cmake时增加如下选项,关闭掉即可:

-D WITH_IPP=OFF \

此处,为防后续需要使用,仍选择安装。在csdn上搜索,有网友提供了下载文件。下载后,在文件ippicv_2017u3_lnx_intel64_general_20170822.tgz 所在目录创建一个脚本文件,内容如下,其中路径,需要根据你的实际情况修改。在 opencv-3.3.1/3rdparty/ippicv/下创建downloads文件夹。然后执行该脚本。

#!/bin/bash
ipp_file=./ippicv_2017u3_lnx_intel64_general_20170822.tgz    &&
ipp_hash=$(md5sum $ipp_file | cut -d" " -f1)      &&
ipp_dir=/home/XXX/Downloads/opencv-3.3.1/3rdparty/ippicv/downloads/linux-$ipp_hash &&

mkdir -p $ipp_dir &&
cp $ipp_file $ipp_dir

执行上述脚本,在opencv-3.3.1/3rdparty/ippicv/downloads/ 下将生成一个类似名称为 linux-4e0352ce96473837b1d671ce87f17359 的文件夹,其中的数字可能各不相同,不影响。该文件夹下是已经拷贝过来的ippicv_2017u3_lnx_intel64_general_20170822.tgz 文件

四:编译安装opencv3.3.1

进入opencv3.3.1解压的文件夹,然后cmake配置属性,执行如下命令:

$ cd opencv-3.3.1
$ mkdir build
$ cd build
  cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/home/xxx/anaconda3 \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D INSTALL_C_EXAMPLES=OFF \
    -D PYTHON_EXCUTABLE=/home/xxx/anaconda3/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_INSTALL_PREFIX:安装的python目录前缀,其实就是指定了python模块的安装路径。如下命令的输出即是该路径:

python -c "import sys; print(sys.prefix)"

PYTHON_EXCUTABLE:指定python的执行文件路径。如下命令的输出即是该路径

which python

如果想关闭掉ippicv的安装,只需在上述cmake命令中增加一行: -D WITH_IPP=OFF \ 即可

还有一些参数为:

-D CMAKE_BUILD_TYPE=RELEASE 
-D CMAKE_INSTALL_PREFIX=/usr/local 
-D WITH_CUDA=OFF 
-D WITH_OPENMP=ON 
-D WITH_QT=ON


上述配置命令执行成功后,继续执行编译命令

make -j15

其中 -jx 是使用CPU的多线程,x是要使用的线程数量。我的CPU是AMD Ryzen 1700X(8核16线程),因此此处配置为 -j15, 使用15个线程,如下图是执行过程中的CPU占用。配置多线程可大大缩短编译时间。 
配置为-j15 CPU占用率

执行安装命令

sudo make install

加入到动态链接库

sudo ldconfig

五、验证测试:

执行如下命令:

python -c "import cv2; print (cv2.__version__)"

正常会输出已经安装的opencv版本号

3.3.1

继续import CV2 测试

python
Python 3.6.3 |Anaconda, Inc.| (default, Oct 13 2017, 12:02:49) 
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>>

成功import无错误。

至此opencv3.3.1安装成功。

猜你喜欢

转载自blog.csdn.net/u013066730/article/details/79411730