OpenCV开源的计算机视觉库,包含有针对C++,Python和Java的绑定,并支持所有主流操作系统。 它可以利用多核处理的优势,并具有GPU加速功能以进行实时操作。

OpenCV的用途非常广泛,包括医学图像分析,拼接街景图像,监视视频,检测和人脸识别,跟踪运动对象,提取3D模型等等。

本教程介绍如何在CentOS 8上安装OpenCV。包括从从存储库使用yum命令安装OpenCV。安装构建OpenCV的依赖,使用git命令从github克隆OpenCV的源码,使用make命令构建并安装OpenCV,验证OpenCV的源码构建与安装,验证OpenCV的python绑定的版本。

从存储库安装OpenCV

从CentOS 8标准存储库使用yum命令安装OpenCV是最简单,快速的方式。但没有针对Python的绑定。你可通过运行以下yum命令安装OpenCV:

sudo yum install opencv opencv-devel

安装完成后,通过运行以下pkg-config命令验证OpenCV库是否存在:

pkg-config --modversion opencv
3.4.1

从源码构建并安装OpenCV

从源码构建OpenCV库可让您获得最新的OpenCV版本。 它将针对您的系统进行优化,并且您将完全控制构建选项。执行以下步骤从源码安装最新的OpenCV版本。

在构建安装OpenCV之前你必需安装构建OpenCV的依赖软件,包括c/c++编译工具gcc/g++等:

sudo dnf install epel-release git gcc gcc-c++ cmake3 qt5-qtbase-devel \
    python3 python3-devel python3-pip cmake python3-devel python3-numpy \
    gtk2-devel libpng-devel jasper-devel openexr-devel libwebp-devel \
    libjpeg-turbo-devel libtiff-devel tbb-devel libv4l-devel \
    eigen3-devel freeglut-devel mesa-libGL mesa-libGL-devel \
    boost boost-thread boost-devel gstreamer1-plugins-base

安装过程可能需要些时间,但你可在终端通过创建新的标签页,使用mkdir命令创建一个目录用于存放构建openCV的源码文件,然后使用cd命令切换到该目录。我们将从此目录开始构建openCV。

运行以下命令在用户家目录下创建目录opencv_build ,并切换该目录:

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

接下来,我们将从github克隆OpenCV和opencv_contrib仓库到刚创建的目录的中,以下git命令将克隆OpenCV和opencv_contrib仓库:

git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git

在撰写本文时,github存储库中的默认版本为4.5.5。如果要安装旧版本的OpenCV,请却换到opencvopencv_contrib目录并运行git checkout <opencv-version>命令检出指定的版本。

当你确定你需要使用的openCV版本后,执行以下cmake3命令配置OpenCV的构建选项:

cmake3 -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

完成构建选项的配置且没有错误后,运行以下make命令开始编译过程:

make -j12

你可根据您的处理器修改-j选项后的数字。该数字通常是你的CPU核心数,如果您不知道处理器的核心数。则可在终端中运行nproc命令获得CPU的核心数。

编译过程可能需要几分钟或更长时间,具体取决于您的系统CPU速度。当编译完成后,使用以下make install命令安装OpenCV:

sudo make install

在安装之后,我们还需要执行一个步骤,使用ln命令链接opencv4.pc文件到/usr/share/pkgconfig目录中,然后运行ldconfig命令来重建系统库的缓存。

sudo ln -s /usr/local/lib64/pkgconfig/opencv4.pc /usr/share/pkgconfig/
sudo ldconfig

验证openCV的安装

如你需要验证openCV是否以安装成功,则可运行以下pkg-config检查OpenCV版本,以验证openCV的安装:

pkg-config --modversion opencv4
4.5.5

要验证Python的openCV绑定是否可用,可执行以下python脚本以进行验证,他将会输出openCV的版本号:

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

结论

我们向您展示了两种不同的方法在CentOS 8服务器上安装OpenCV。 您选择的方法取决于您的要求和偏好。 尽管从CentOS存储库安装以打包版本更容易,但从源代码构建并安装OpenCV会给您带来更大的灵活性,并且它应该是安装OpenCV的首选。如果您有任何问题或反馈,请随时在下面评论。