ubuntu编译安装opencv3.3+python3,解决ippicv下载问题

2018.01.11更新

如果只是要在python用opencv,那么下面重新编译的方法真的太蠢了,可以用pip直接安装。真不明白为什么那么多博客都是教怎么编译源码,就这么简单一句话。

$ sudo pip3 install opencv_python

参考opencv官网https://opencv.org/

opencv源码下载

下载opencv3.3源码https://opencv.org/releases.html
或者git clone https://github.com/opencv/opencv.git

准备

升级系统已有包

sudo apt update
sudo apt upgrade

安装各种包

sudo apt install build-essential

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

sudo apt install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

因为用的python3,还要安装

sudo apt pytho3-dev python3-numpy

编译

opencv源码根目录名为opencv-3.3.1

创建编译目录build

cd ~/opencv-3.3.1
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

这时会提示说要下载ippicv,结果下载失败。ippicv是并行计算库。

去github下载对应的库
https://github.com/opencv/opencv_3rdparty/branches/all
ubuntu编译安装opencv3.3+python3,解决ippicv下载问题_第1张图片

看cmake的提示下载对应版本的ippicv,我下的是ippicv/master_20170822

ubuntu编译安装opencv3.3+python3,解决ippicv下载问题_第2张图片

下载文件的地方位置在.cache/ippicv下,带md5的文件名字,需要把ippicv_2017u3_lnx_intel64_general_20170822.tgz前面加上md5

找到提示对应的文件,将文件拷贝到opencv-3.3.1同级目录
执行下面命令

ipp_file=ippicv_2017u3_lnx_intel64_general_20170822.tgz &&
ipp_hash=$(md5sum ../$ipp_file | cut -d" " -f1) &&
ipp_dir=.cache/ippicv                           &&

mkdir -p $ipp_dir &&
cp ../$ipp_file $ipp_dir/$ipp_hash-$ipp_file

在.cache/ippicv文件夹下有4e0352ce96473837b1d671ce87f17359-ippicv_2017u3_lnx_intel64_general_20170822.tgz文件

放好ippicv后可以重新cmake

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

完成后看到下面提示,说明py2、py3依赖库都有。
ubuntu编译安装opencv3.3+python3,解决ippicv下载问题_第3张图片

编译和安装

make -j4
sudo make install

测试

ubuntu编译安装opencv3.3+python3,解决ippicv下载问题_第4张图片

补充
记得装opencv3.2的时候按上面的步骤最后只编译了python2的,python3是配合virtualenv,配置python环境才能编译出来。

你可能感兴趣的:(工具)