在 Ubuntu 20.04 上安装 OpenCV

一.从 Ubuntu 源仓库安装 OpenCV

OpenCV 在 Ubuntu 20.04 软件源中可用。想要安装它,运行:

sudo apt update
sudo apt install libopencv-dev python3-opencv

上面的命令将会安装所有必要的软件包,来运行 OpenCV:

通过导入cv2模块,并且打印 OpenCV 版本来验证安装结果:

python3 -c "import cv2; print(cv2.__version__)"

输出:

4.2.0

二、 从源码安装 OpenCV

1.安装构建工具和所有的依赖软件包:

sudo apt install build-essential cmake git pkg-config libgtk-3-dev \
    libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \
    libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev \
    gfortran openexr libatlas-base-dev python3-dev python3-numpy \
    libtbb2 libtbb-dev libdc1394-22-dev libopenexr-dev \
    libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev

2.克隆所有的OpenCV 和 OpenCV contrib 源

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

3.下载完成,创建一个临时构建目录,并且切换到这个目录

cd ~/opencv_build/opencv
mkdir -p build && cd build

4.使用 CMake 命令配置 OpenCV 构建

cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_C_EXAMPLES=ON \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D OPENCV_GENERATE_PKGCONFIG=ON \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_build/opencv_contrib/modules \
    -D BUILD_EXAMPLES=ON ..

输出将会如下:

-- Configuring done
-- Generating done
-- Build files have been written to: /home/vagrant/opencv_build/opencv/build

5.开始编译过程

make -j8
# 8是处理器核心个数,你可以输入nproc找到

6.安装 OpenCV

sudo make install

输出:

4.6.0

7.验证

pkg-config --modversion opencv4

输出

4.6.0

三.当你选择安装低于4.6.0的OpenCV4.2.0时的注意点

在 Ubuntu 20.04 上安装 OpenCV_第1张图片

将i文件夹的内容复制到/opencv_build/opencv_contrib-/modules/xfeatures2d/src/ 下

将data文件夹的内容复制到/opencv_build/opencv/.cache/data/下

make -j8出错

解决:

在 Ubuntu 20.04 上安装 OpenCV_第2张图片

上图这三个文件拷贝到/opencv_build/opencv_contrib/modules/xfeatures2d/test,并修改/opencv_build/opencv_contrib/modules/xfeatures2d/test目录下的test_features2d.cpp和test_rotation_and_scale_invariance.cpp(两个文件都要改)里面的头文件

在 Ubuntu 20.04 上安装 OpenCV_第3张图片

重新编译 

链接:https://download.csdn.net/download/qq_58060770/86838394

你可能感兴趣的:(ROS,ubuntu,linux,运维)