如何在 Raspberry Pi 上安装 OpenCV

woniulx0 2019-08-06

OpenCV(开源计算机视觉库)是一个开源计算机视觉库,具有 C++ , Python 和 Java 的绑定。它用于广泛的应用,包括医学图像分析,拼接街景图像,监控视频,检测和识别面部,跟踪移动物体,提取 3D 模型等等。

OpenCV 可以利用多核处理功能,并具有 GPU 加速功能,可实现实时操作。

在本教程中,我们将解释如何在 Raspberry Pi 上安装 OpenCV 。

先决条件

我们假设您在 Raspberry Pi 上安装了 Raspbian 。

从 Source 安装 OpenCV

最推荐的安装 OpenCV 的方法是从源代码构建库。这样您就可以完全控制构建选项, OpenCV 将针对您的系统进行优化。

首先增加交换空间以避免因内存问题导致的编译挂起:

sudo nano /etc/dphys-swapfile

将 CONF_SWAPSIZE 值从默认值更改 100 为 1024 :

的 /etc/dphys-swapfile

CONF_SWAPSIZE=1024

保存文件并运行以下命令以使更改生效:

sudo /etc/init.d/dphys-swapfile restart

我们现在可以开始构建 OpenCV 。首先,更新包索引并安装构建工具和所需的依赖项:

sudo apt update
sudo apt install build-essential cmake git pkg-config libgtk-3-dev libcanberra-gtk*
sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev
sudo apt install libjpeg-dev libpng-dev libtiff-dev gfortran openexr libatlas-base-dev opencl-headers
sudo apt install python3-dev python3-numpy libtbb2 libtbb-dev libdc1394-22-dev

创建一个新目录并从 Github 克隆 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

在撰写本文时, GitHub 存储库中的默认版本是 4.1.1 版。如果你想安装 OpenCV 的旧版本,导航既 opencv 和 opencv_contrib 目录,并运行 git checkout <opencv-version>

克隆存储库后,创建一个临时构建目录,然后切换到该目录:

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

使用 CMake 设置 OpenCV 构建配置:

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

输出结果如下所示:

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

运行 make 以启动编译过程:

make -j4

这个过程需要一些时间,大约 1-2 小时,具体取决于 Raspberry Pi 模型。完成后,您将看到如下内容:

...
[100%] Linking CXX shared module ../../lib/python3/cv2.cpython-35m-arm-linux-gnueabihf.so
[100%] Built target opencv_python3

如果编译在某些时候失败,由于资源不可用,请 make 再次运行该命令,该过程将从停止的位置继续。

最后一步是安装已编译的 OpenCV 文件:

sudo make install
...
-- Installing: /usr/local/bin/opencv_version
-- Set runtime path of "/usr/local/bin/opencv_version" to "/usr/local/lib"

要检查 OpenCV 是否已成功安装,请键入以下命令,您应该看到 OpenCV 版本:

C++库:

pkg-config --modversion opencv4
4.1.1

Python库:

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

清理

如果 SD 卡上没有足够的可用空间,请删除源文件:

rm -rf ~/opencv_build

大量交换使用可能会损坏您的 SD 卡。将交换空间更改回原始大小:

sudo nano /etc/dphys-swapfile

将 CONF_SWAPSIZE 值编辑为 100 :

文件 /etc/dphys-swapfile

CONF_SWAPSIZE=100

保存文件并激活更改:

sudo /etc/init.d/dphys-swapfile restart

结论

我们已经向您展示了如何在 Raspberry Pi 板上安装 OpenCV 。从源代码构建 OpenCV 为您提供了更大的灵活性,它应该是您安装 OpenCV 时的优先使用的方法。

相关推荐