myfreax

如何在Ubuntu 18.04安装OpenCV

OpenCV是一个开源计算机视觉库,具有C ++,Python和Java的绑定。它的用途非常广泛,包括医学图像分析,拼接街景图像,检测和识别人脸等

4 min read
By myfreax
如何在Ubuntu 18.04安装OpenCV

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

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

在本教程中,我们将展示如何在Ubuntu 20.04安装OpenCV的两种方式。第一种是从Ubuntu仓库中使用apt安装opencv。

第二中手动从源码编译opencv。从Ubuntu仓库安装的opencv版本可能会比较低,如果希望使用更高版本的opencv。可以选择手动编译的opencv。

安装OpenCV

OpenCV可从Ubuntu 20.04仓库中获得,但它已经过时了。在撰写本文时,存储库中的版本为4.2。

Ubuntu 20.04 LTS的默认Python版本是3.8版。如果要使用python 2绑定安装OpenCV,请安装python-opencv

请以root或者具有sudo权限用户登录。在终端中运行以下命令更新软件包索引并安装OpenCV软件包。

安装完成后,您可以运行命令pkg-config --modversion opencv进行验证是否已安装成功。或者通过导入Python cv2模块并打印OpenCV版本验证是否已安装成功。

python3 -c "import cv2; print(cv2.version)" 这是一个检查opencv版本的python脚本。

sudo apt update
sudo apt install python3-opencv
#sudo apt install python-opencv #for python2
pkg-config --modversion opencv
python3 -c "import cv2; print(cv2.version)" 

编译OpenCV

从源代码构建OpenCV将使您拥有最新的OpenCV可用版本。它将针对您的系统进行优化,并且您将完全控制构建选项。

要从源代码构建最新的OpenCV版本,请按照以下步骤操作。首先是安装必需依赖软件和第三方库。

安装完成后,创建目录存放opencv源码并从github仓库中克隆OpenCV和opencv_contrib仓库。在撰写本文时,github仓库中的默认版本为4.0.0。

如果您要安装旧版本的OpenCV,请在opencvopencv_contrib目录中运行git命令git checkout <opencv-version>切换opencv的版本。

克隆完成后,创建一个临时构建目录,并切换到该目录。使用CMake命令配置OpenCV构建选项。

然后运行cmake命令开始编译过程。你可以修改-j 后面的数字,该数值与你的计算机处理器核数一致。您可以在终端运行nproc命令来找到该数值。

编译可能需要几分钟或更长时间,具体取决于您的系统配置。编译完成后,使用make install安装OpenCV。

为了让python更易于载入opencv动态库,你需要创建opencv4.pc文件到/usr/share/pkgconfig目录的符号链接,然后运行ldconfig重建库缓存。

最后,你可通过命令pkg-config --modversion opencv4检查opencv的版本。除了使用pkg-config命令之外。你也可以在python中导入cv2模块检查opencv的版本。

python3 -c "import cv2; print(cv2.version)" 这是一个检查opencv版本的python脚本。

现在我们已经将这些过程整合一个脚本中,你可直接运行以下使用HereDoccat命令整合的脚本一键安装/编译opencv4

cat <<"EOF" | bash                              
sudo apt install build-essential cmake git pkg-config libgtk-3-dev -y
sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev -y
sudo apt install libjpeg-dev libpng-dev libtiff-dev gfortran openexr libatlas-base-dev -y
sudo apt install python3-dev python3-numpy libtbb2 libtbb-dev libdc1394-22-dev -y
mkdir -p ~/opencv_build && cd ~/opencv_build
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
cd ~/opencv_build/opencv && mkdir build && cd build
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 ..
make -j12
sudo make install
sudo ln -s /usr/local/lib64/pkgconfig/opencv4.pc /usr/share/pkgconfig/
sudo ldconfig
pkg-config --modversion opencv4
EOF

我们向您展示了两种在Ubuntu 20.04服务器上安装OpenCV的方法。您选择的方法取决于您的要求和偏好。

尽管从Ubuntu存储库安装打包版本更容易,但从源代码构建OpenCV可以为您提供更大的灵活性,并且它应该是安装OpenCV时的首选。如果您有任何疑问或反馈,请随时在下面评论。