建议安装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
221
20
下载
OpenCV: 开源计算机视觉库
最近提交(Master分支:1 个月前 )
09c89347 feat: G-API: Custom stream sources in Python (#27276) 1 天前
47d71530 Fix HDR tutorial result mismatch by adding gamma note #27866 This PR fixes #22219 by clarifying the gamma correction value in the HDR tutorial. The function cv.createTonemap() has a default gamma value of 1.0. To match the tutorial example results, gamma should be explicitly set to 2.2. This note has been added to the Tonemap HDR image section of the tutorial. 1 天前
Logo

新一代开源开发者平台 GitCode,通过集成代码托管服务、代码仓库以及可信赖的开源组件库,让开发者可以在云端进行代码托管和开发。旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐