今天是2019.3.12,尝试当前最新版本的opencv4.0.1+opencv_contrib-4.0.1+Python3.7,资料较少,做一下记录
环境:MANJARO,Kernel 4.19.24-1,因为是编译安装,所有Linux发行版理论上均可以适用本教程
参考了:
– https://www.pyimagesearch.com/2018/08/15/how-to-install-opencv-4-on-ubuntu/
– https://blog.csdn.net/huyaoyu/article/details/83824098

安装Anaconda

Anaconda的必要性不再赘述,直接最新的Python3.7,conda install numpy安装numpy库。

解决依赖(建议跳过)

我使用的MANJARO发行版已满足依赖,以下是Ubuntu的apt-get install安装方法,Manjaro/Archlinux把apt-get install替换为Pacman -S即可。

sudo apt-get update
sudo apt-get upgrade
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential cmake unzip pkg-config
sudo apt-get install build-essential cmake unzip pkg-config
sudo apt-get install libjpeg-dev libpng-dev libtiff-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 libjpeg-dev libpng-dev libtiff-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 libgtk-3-dev
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install libatlas-base-dev gfortran

更新CMake

OpenCV4要求使用cmake 3.5.1以上版本,更新cmake使用的命令为

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:george-edison55/cmake-3.x
sudo apt-get update
sudo apt-get install cmake3 cmake3-data

编译配置

关键的一步
这是我的最终的编译通过的指令:

cmake 
- DINSTALL_PYTHON_EXAMPLES=ON 
- DINSTALL_C_EXAMPLES=OFF 
- DOPENCV_EXTRA_MODULES_PATH=/home/zht/Dev/opencv_contrib-4.0.1/modules/ 
- DOPENCV_PYTHON3_VERSION=3.7 
- DPYTHON3_EXECUTABLE=/home/zht/anaconda3/bin/python 
- DBUILD_opencv_python3=ON 
- DBUILD_opencv_python2=OFF 
- DBUILD_EXAMPLES=OFF 
- DWITH_CUDA=OFF 
- DENABLE_FAST_MATH=1  
- DOPENCV_ENABLE_NONFREE=ON 
- DWITH_TBB=OFF 
- DPYTHON3_INCLUDE_DIR=/home/zht/anaconda3/include/python3.7m 
- DPYTHON3_LIBRARY=/home/zht/anaconda3/lib/python3.7/config-3.7m-x86_64-linux-gnu/libpython3.7m.a 
- DPYTHON3_NUMPY_INCLUDE_DIRS=/home/zht/anaconda3/lib/python3.7/site-packages/numpy/core/include 
- DPYTHON3_PACKAGES_PATH=/home/zht/anaconda3/lib/python3.7/site-packages 
- D PYTHON_DEFAULT_EXECUTABLE=/home/zht/anaconda3/bin/python3.7 ..

注意- DOPENCV_ENABLE_NONFREE=ON编译了专利库
我是 AMD FX-8350 CPU,所以关闭了Intel加速库
因为我用Tensorflow/PyTorch,而不是OpenCV做DeepLearning,所以没有链接编译cuda,当然cuda也可以实现template matching等日常操作的加速

执行编译

耗时很长的一步

make -j7

-j7指派7逻辑核心进行编译,根据实际况调整,建议为核心数 - 1

安装

愉快的一步

sudo make install
sudo ldconfig

测试

打开python
执行import cv2,并尝试调用专利库retval=cv2.xfeatures2d.SIFT_create(),没报错则完成
若找不到cv2库,手动拷贝编译出的.so文件到/home/zht/anaconda3/lib/python3.7/site-packages目录下

最后修改日期: 2019年3月12日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。