主要参考下列博文:
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
三、准备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 \ 即可
上述配置命令执行成功后,继续执行编译命令
make -j15
其中 -jx 是使用CPU的多线程,x是要使用的线程数量。我的CPU是AMD Ryzen 1700X(8核16线程),因此此处配置为 -j15, 使用15个线程,如下图是执行过程中的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安装成功。