Ubuntu20.04 安装 Opencv4.4.0
建议安装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
更多推荐
所有评论(0)