科技爱好者博客

在树莓派上安装OpenCV

在本指南中,我们将引导您完成在Raspberry Pi上设置OpenCV的过程。

成功将OpenCV安装到Raspberry Pi上需要几个不同的步骤,并且要有一定的耐心。

对于那些不知道什么是OpenCV的人。它是一个包含不同编程功能的库,旨在处理实时计算机视觉。

使用计算机视觉,您可以实时解释图像和视频。使您可以相对轻松地执行诸如运动检测和面部识别之类的任务。

树莓派是开始学习OpenCV的绝佳平台,并且还可以用作价格适中的小型设备。

设备清单

安装OpenCV的软件包

在本节中,我们将引导您完成安装所有编译和运行OpenCV软件所需的软件包的过程。

由于OpenCV在树莓派上需要许多软件包,因此我们将通过几个步骤安装它们。

1.在继续之前,我们应该先更新任何先前存在的软件包。

您可以通过运行以下两个命令来更新当前安装的软件包。

sudo apt update
sudo apt upgrade

2.现在,我们可以开始安装OpenCV编译所需的所有软件包的过程。

首先,运行以下命令。此命令将安装包含编译OpenCV代码所需工具的软件包。

sudo apt install cmake build-essential pkg-config git

3.接下来,我们安装将为OpenCV添加对不同图像和视频格式支持的软件包。

使用以下命令将这些库安装到树莓派中。

sudo apt install libjpeg-dev libtiff-dev libjasper-dev libpng-dev libwebp-dev libopenexr-dev
sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libdc1394-22-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev

4.我们的下一步是使用以下命令安装OpenCV界面所需的所有软件包。

sudo apt install libgtk-3-dev libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5

5.这些下一个软件包对于OpenCV在树莓派上以适当的速度运行至关重要。

您可以通过运行以下命令来安装这些软件包。

sudo apt install libatlas-base-dev liblapacke-dev gfortran

6.我们需要安装的第二批软件包与OpenCV用于管理数据的分层数据格式(HDF5)有关。

使用以下命令将HDF5软件包安装到Pi。

sudo apt install libhdf5-dev libhdf5-103

7.最后,我们可以使用以下命令安装最后几个软件包。

这最后几个软件包将使我们能够在树莓派上编译支持Python的OpenCV。

sudo apt install python3-dev python3-pip python3-numpy

在继续下一节之前,请确保所有软件包均已成功安装。

准备用于编译OpenCV的树莓派

1.现在已经安装了在树莓派上编译OpenCV所需的所有软件包,我们需要做一些准备工作,然后才能开始编译过程。

现在,我们需要暂时增加交换空间的大小,以帮助在树莓派上编译OpenCV的过程。

当设备的物理内存用完时,操作系统将使用交换空间。尽管交换内存比无力内存慢很多,但在某些情况下它仍然很有用。

通过运行以下命令开始修改交换文件配置。

sudo nano /etc/dphys-swapfile

2.在此文件中时,我们需要查找并替换以下行。

找到

CONF_SWAPSIZE=100

用以下这行来代替

CONF_SWAPSIZE=2048

更改后,按CTRLXY然后按,保存文件Enter

3.在更改交换文件配置后,我们需要使用以下命令重新启动其服务。

sudo systemctl restart dphys-swapfile

通过重新启动服务,我们迫使它重新创建交换文件。

4.接下来,让我们继续并将所需的两个OpenCV存储库克隆到Raspberry Pi中。

运行这两个命令将从其git存储库中检索OpenCV的最新可用版本。

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

由于这些存储库很大,因此可能需要一些时间才能克隆到您的Raspberry Pi。

 在树莓派上编译OpenCV

1.首先,在克隆的“ opencv ”文件夹中创建一个名为“ build ”的目录,然后将工作目录更改为该目录。

 mkdir ~/opencv/build
cd ~/opencv/build

在此文件夹中,我们将在树莓派上编译OpenCV。

2.现在我们位于新创建的build文件夹中,现在我们可以cmake用来准备OpenCV以便在树莓派上进行编译。

运行以下命令以生成所需的makefile。

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

3. make文件成功完成生成后,我们现在可以通过运行以下命令最终继续编译OpenCV。

我们使用参数-j$(nproc)来告诉编译器为每个可用处理器运行编译器。

这样做将大大加快编译过程,并使Raspberry Pi上的每个内核都可以编译OpenCV。

make -j$(nproc)

请注意,编译过程可能会花费大量时间。在树莓派4上,此过程耗时约1个小时。

4.编译过程完成后,我们可以继续安装OpenCV。

对我们来说幸运的是,这是一个相当简单的过程,需要您运行以下命令。

sudo make install

此命令将自动将所有必需的文件复制到所需的位置。

5.现在,我们还需要重新生成操作系统库链接缓存。

如果不运行以下命令,树莓派将无法找到我们的OpenCV安装。

sudo ldconfig

编译后清理

1.现在我们已经完成了OpenCV的编译,我们不再需要这么大的交换文件。

让我们再次使用以下命令编辑交换文件配置。

sudo nano /etc/dphys-swapfile

2.在此文件中,您需要查找并更改以下行。

找到

CONF_SWAPSIZE=2048

用以下这行来代替

CONF_SWAPSIZE=100

完成后,按CTRLXY然后按,保存文件Enter

3.现在,我们的最终清理任务要求我们重新启动交换文件服务。

重新启动服务会将文件大小从2GB减小到100 MB。

sudo systemctl restart dphys-swapfile

在树莓派上测试OpenCV

1.要测试现在是否已将OpenCV安装到我们的树莓派中,我们将使用Python 3

通过运行以下命令启动Python终端。

python3

2.在Python中时,我们现在可以使用以下命令导入OpenCV Python模块。

通过导入模块,我们可以首先检查OpenCV是否甚至可以在我们的Pi上加载。

import cv2

3.现在导入了OpenCV模块,我们应该能够检索其版本。

要获取OpenCV的版本,请使用以下命令。

cv2.__version__

4.如果现在一切正常,并且OpenCV已成功安装到您的Raspberry Pi中,则您应该在命令行中看到如下所示的文本。

'4.1.2'

希望此时您将启动并运行OpenCV。

原创文章,转载请注明: 转载自科技爱好者博客

本文链接地址: 在树莓派上安装OpenCV (https://www.tujing.site/4843)

如果博客对您有帮助,请给我 赞助


退出移动版