如何在Ubuntu 18.04上安装OpenCV
OpenCV(开源计算机视觉库)是一个开源计算机视觉库,具有针对C++,Python和Java的绑定。
它的用途非常广泛,包括医学图像分析,拼接街景图像,监视视频,检测和识别人脸,跟踪运动对象,提取3D模型等等。
OpenCV可以利用多核处理的优势,并具有GPU加速功能以进行实时操作。
本教程说明了如何在Ubuntu 18.04上安装OpenCV。
对于大多数人来说,在Ubuntu上安装OpenCV的最简单方法是使用apt软件包管理工具进行安装。
如果要从源代码安装OpenCV的最新稳定版本,请从本教程的“源代码”部分向下滚动到“安装OpenCV”。
选择最适合安装选项之一。
从Ubuntu存储库安装OpenCV
可从Ubuntu 18.04发行存储库中获得OpenCV软件包。
在撰写本文时,存储库中的版本为3.2,这不是最新版本。
要从Ubuntu 18.04存储库安装OpenCV,请执行以下步骤:
- 刷新软件包索引并通过键入以下内容安装OpenCV软件包:
sudo apt updatesudo apt install python3-opencv
上面的命令将安装运行OpenCV所需的所有软件包。
- 要验证安装,请导入“ cv2”模块并打印OpenCV版本:
python3 -c "import cv2; print(cv2.__version__)"
3.2.0
Ubuntu 18.04 LTS中的默认Python版本是3.6版本。
如果要使用python 2绑定安装OpenCV,请安装“ python-opencv”软件包。
从源代码安装OpenCV
从源代码构建OpenCV库是安装OpenCV的推荐方法。
它将针对特定系统进行优化,并且我们将完全控制构建选项。
要从源代码安装最新的OpenCV版本,请执行以下步骤:
- 安装所需的依赖项:
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
- 克隆OpenCV和OpenCV贡献存储库:
mkdir ~/opencv_build && cd ~/opencv_buildgit clone https://github.com/opencv/opencv.gitgit clone https://github.com/opencv/opencv_contrib.git
在撰写本文时,github存储库中的默认版本为4.2.0。如果要安装较旧版本的OpenCV,请在cd目录中同时打开“ opencv”和“ opencv_contrib”目录,然后运行“ git checkout <opencv-version>”
- 下载完成后,创建一个临时构建目录,然后切换到该目录:
cd ~/opencv_build/opencvmkdir build && cd build
使用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 ..
当CMake构建系统完成后,我们将看到类似以下的内容:
- 开始编译过程:
make -j8
根据处理器修改“ -j”标志。如果我们不知道处理器的内核数量,可以通过键入“ nproc”找到它。编译可能需要几分钟或者更长时间,具体取决于系统配置。完成后,我们将看到类似以下的内容:
- 使用以下方法安装OpenCV:
sudo make install
- 要验证OpenCV是否已成功安装,请键入以下命令,我们应该会看到OpenCV版本:
pkg-config --modversion opencv4
4.2.0
python3 -c "import cv2; print(cv2.__version__)"
4.2.0-dev