ubuntu18.04+cmake+opencv+opencv_contrib+anaconda python源码编译

网上很多博客也写了关于在Ubuntu18.04下用cmake编译opencv+opencv_contrib+python源码的过程,只有自己动手做了以后才发现有很多的坑,因此将完整的过程写下来交流交流,也借鉴了很多别人写的博客,在此表示感谢!下面正式开始!

  1. 我的系统是ubuntu18.04
  2. cmake --version: 3.10.2
  3. gcc/g++ --version: 7.3.0
  4. python --version: 3.7.0
  5. which python: ~/anaconda3/bin/python

一.准备阶段:安装各种依赖环境

1.此处可以按照官网的教程进行:

https://docs.opencv.org/3.4.3/d7/d9f/tutorial_linux_install.html

若出现libjasper-dev包安装失败的情况:

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

参考:https://blog.csdn.net/weixin_41053564/article/details/81254410

2.下载opencv和opencv_contrib:

我将文件放在~/opencv/目录下:

cd ~/opencv
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git

注意:opencv和opencv_contrib的版本一定要一致, 否则就会失败(亲身经历!!!)

3.在~/opencv/下新建一个build目录在存放编译过程中生成的文件,并且进入此文件夹

cd ~/opencv
mkdir build
cd build

接下来就可以正式开始了!

二.正式开始

1.进入build文件夹

2.

cmake -D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv/opencv_contrib-3.4.3/modules
-D BUILD_DOCS=ON \
-D BUILD_EXAMPLES=ON \
-D PYTHON_DEFAULT_EXECUTABLE=~/anaconda3/bin/python3 \
-D BUILD_opencv_python3=ON \
-D BUILD_opencv_python2=OFF \
-D PYTHON3_EXECUTABLE=~/anaconda3/bin/python3 \
-D PYTHON3_INCLUDE_DIR=~/anaconda3/include/python3.7m \
-D PYTHON3_LIBRARY=~/anaconda3/lib/python3.7/config-3.7m-x86_64-linux-gnu/libpython3.7m.a \
-D PYTHON_NUMPY_PATH=~/anaconda3/lib/python3.7/site-packages \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D PYTHON3_PACKAGESS_PATH=~/anaconda3/lib/python3.7/site-packages \
-D WITH_TBB=ON ../opencv3.4.3

一部分参数的含义可以在opencv官网中找到定义,官网没有说明的有:

  1. 要指定PYTHON_DEFAULT_EXECUTABLE
  2. 要关闭python2,打开python

注意:在cmake过程中会因为网络问题而出现ippicv下载失败的情况:

在~/opencv/build文件夹中找到CMakeDownloadLog.txt,在文件里面找到下载链接(有标记的),下载完成后,将解压后的两个文件夹拷贝到~/opencv/opencv3.4.3/3rdparty/ippicv/中,删除build/文件夹中的所有内容后再进行cmake。

网上的解决方法都是在ippicv/中创建downloads/目录等等操作,不知道什么原因我没有成功!!!

注意:若遇到face_landmark_model.dat下载不成功的情况,则下载后拷贝到~opencv/build/share/OpenCV/testdata/cv/face文件夹内

3. make

4.sudo make install

5.因为顺便编译了python接口,所以将~/opencv/build/lib/python3/cv2.cpython-37m-x86_64-linux-gnu.so复~/anaconda3/lib/python3.7/site-packages/文件夹中

至此就大功告成了!!!

在pycharm中测试是没有问题的!

猜你喜欢

转载自blog.csdn.net/lijuanyujihui/article/details/84302837