建议安装OpenCV-3.2.0,可以使用xfeature2d模块,高版本的收费。尤其在Ubuntu18.04.5上面安装比较方便,20.04错误较多,但也都能在网上找到答案,我都成功安装过。
如果安装了anaconda,建议先执行3、Configure中的第4个提示,避免库冲突。

1、更新系统,安装必要的包

 sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
 sudo apt update
 sudo apt-get install build-essential
 sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libopenexr-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
 sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
 sudo apt update
 sudo apt-get install python-dev-is-python3 python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper1 libjasper-dev libdc1394-22-dev

2、新建目录,下载包

OpenCV-4.4.0

 mkdir ~/opencv && cd ~/opencv
 git clone https://gitee.com/yxd.osc.com/opencv.git
 git clone https://gitee.com/yxd.osc.com/opencv_contrib.git
 mkdir build && cd build

(opencv和opencv_contrib来自官网的github,github下载太慢所以导入到gitee中下载,而且修复了编译过程中的两个bug,放心使用!!!)

3、Configure

注意:根据自己的路径调整以下命令, 先看命令下方的的说明。

cmake ../opencv \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/local/opencv4 \
-DOPENCV_EXTRA_MODULES_PATH=/自己的路径/opencv/opencv_contrib/modules \
-DBUILD_DOCS=ON \
-DBUILD_EXAMPLES=ON \
-DPYTHON3_EXECUTABLE=/usr/bin/python3 \
-DPYTHON_INCLUDE_DIR=/usr/include/python3.8 \
-DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.8.so \
-DPYTHON3_NUMPY_INCLUDE_DIRS=/自己的路径/.local/lib/python3.8/site-packages/numpy/core/include \
-DOPENCV_GENERATE_PKGCONFIG=ON \
-DWITH_GTK_2_X=ON \
-DWITH_OPENGL=ON \
-DWITH_CUDA=ON \
-DWITH_OPENCL=ON \
-DCUDA_ARCH_BIN=8.6 \
-DCUDA_ARCH_PTX=8.6 \
-DBUILD_opencv_xfeatures2d=OFF \
-DBUILD_opencv_hdf=OFF \
-DBUILD_opencv_gapi=OFF

(官网提示:如果不能执行,去掉-D后面的空格,ubuntu18.04需要去掉空格。BUILD_DOCS和BUILD_EXAMPLES的设置不确定正确与否。反正我是顺利执行成功了。)
1、如果没有梯子会卡在下载ippicv,根据提示版本下载,此处提供一个:链接: ippicv_2020_lnx_intel64_general_20191018_general 提取码: m2ee
下载的文件复制到目录opencv/3rdparty/ippicv,并修改该目录中的ippicv.cmake,注释原来的下载网址,改为保存ippicv的本地路径。
2、最好有显卡才加最后三行,显卡型号与对应的CUDA_ARCH_BIN版本查询
3、检查nvidia-smi和nvcc -V显示版本是否一致?如果不一致,sudo apt autoremove nvidia-cuda-toolkit。再试nvcc -V,如果依然不一致,估计CUDA没有配置好。
4、与conda库冲突:Cannot generate a safe runtime search path for target opencv_imgcodecs because files in some directories may conflict with libraries in implicit。解决方法:conda update conda; mv ~/anaconda3/lib ~/anaconda3/lib_bak (安装完以后记得改回来)。
5、获取numpy的include目录的路径:import numpy as np print(np.get_include())
在这里插入图片描述

4、Build

make -j14

(-j后面的数字代表多线程,请根据自己的电脑配置设置,官网默认为7)
注: 1、 sys/videoio.h not found。解决方法:sudo mkdir /usr/include/sys, sudo touch videoio.h. 重新cmake。
2、fatal error: Python.h: No such file or directory。解决方法:sudo apt install python-dev, sudo apt install python3-dev
3. numpy/ndarrayobject.h: No such file or directory. Solution: sudo apt install python3-numpy

5、Install

sudo make install

6、Configure

vim ~/.bashrc

如果配置了zsh,则使用vim ~/.zshrc,末尾添加以下内容:

export PKG_CONFIG_PATH='/usr/local/opencv4/lib/pkgconfig:$PKG_CONFIG_PATH'
export LD_LIBRARY_PATH='/usr/local/opencv4/lib'

附CUDA配置,注意安装完以后cuda路径是/usr/local/cuda-11.2,先执行sudo ln -s /usr/local/cuda-11.2 /usr/local/cuda。好处就是以后更换cuda版本后,ln -s一下,就不需要更改配置文件了。

export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

7、测试python3环境中生效

python3
import cv2
cv2.__version__

如果找不到cv2,进入opencv的build目录,复制.so文件

cp lib/python3/cv2.cpython-36m-x86_64-linux-gnu.so /home/bbnc/.local/lib/python3/site-packages/

8、网上的好教程

(1) https://gist.github.com/raulqf/f42c718a658cddc16f9df07ecc627be7

GitHub 加速计划 / opencv31 / opencv
77.38 K
55.71 K
下载
OpenCV: 开源计算机视觉库
最近提交(Master分支:2 个月前 )
c3747a68 Added Universal Windows Package build to CI. 11 天前
9b635da5 - 11 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐