本文是根据如下链接翻译而来:Install OpenCV 4 on your Raspberry Pi;经过我的实验,可以在raspberry pi 4B(debian系统)上安装并使用。我的SD卡是闪迪,64G的;要搞图像的话,SD卡尽量大点。内存4G.

首先你需要一个屏幕连接你的树莓派,可以使用VNC或者直接HDMI;

文中只摘出安装步骤:详细的解释可以点击原文

step1:在终端上运行如下代码,出现下面的界面

$ sudo raspi-config

然后按步骤选择Advanced Options:

树莓派4b opencv 太卡 树莓派安装opencv4_OpenCV

再选择Expand Filesystem :Raspberry PI “Expand Filesystem”菜单允许我们利用整个闪存卡。这将给我们必要的空间来安装OpenCV 4和其他软件包。(通过键盘上下左右键来选择)

树莓派4b opencv 太卡 树莓派安装opencv4_python_02

然后点击finish,最后用如下代码重启一下树莓派。

$ sudo reboot

在重新启动之后,您的文件系统应该已经扩展到包含了微SD卡上的所有可用空间。您可以通过执行df-h并检查输出来验证磁盘是否已展开:

树莓派4b opencv 太卡 树莓派安装opencv4_python_03

step2:在Raspberry PI上安装OpenCV 4依赖项

1、更新系统

$ sudo apt-get update && sudo apt-get upgrade

2、然后,安装开发工具,包括CMake

$ sudo apt-get install build-essential cmake unzip pkg-config

3、安装图像和视频库

$ sudo apt-get install libjpeg-dev libpng-dev libtiff-dev
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
$ sudo apt-get install libxvidcore-dev libx264-dev

4、安装GTK,GUI后端:

$ sudo apt-get install libgtk-3-dev

5、安装一个可以减少烦人的gtk警告的包

$ sudo apt-get install libcanberra-gtk*

6、然后安装两个包,其中包含OpenCV的数值优化

$ sudo apt-get install libatlas-base-dev gfortran

7、安装Python 3

$ sudo apt-get install python3-dev

step3:下载OpenCV 4

1、下载opencv 和opencv_contrib

$ cd ~
$ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.0.0.zip
$ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.0.0.zip

2、解压

$ unzip opencv.zip
$ unzip opencv_contrib.zip

3、原文在这个改变了文件的名字,如果你需要修改的话就按照如下代码。如果您跳过重命名目录,请不要忘记更新CMake路径

$ mv opencv-4.0.0 opencv
$ mv opencv_contrib-4.0.0 opencv_contrib

step4:为OpenCV 4配置Python 3虚拟环境

1、安装pip

$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python3 get-pip.py

2、安装虚拟环境

$ sudo pip install virtualenv virtualenvwrapper
$ sudo rm -rf ~/get-pip.py ~/.cache/pip

要完成这些工具的安装,我们需要更新我们的~/.profile文件(类似于.bashrc或.bash_profile)

3、使用终端文本编辑器(如vi/vim或Nano),将以下行添加到您的~/.profile中:

# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

或者使用bash命令直接加:

$ echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.profile
$ echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.profile
$ echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.profile
$ echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.profile

加完之后,你可以先打开~/.profile看看,是否加上了上面的代码,确定加上了之后运行如下代码:

$ source ~/.profile

4、创建一个虚拟环境来保存OpenCV 4和其他软件包,

$ mkvirtualenv cv -p python3

这一行是创建一个名为cv的Python3虚拟环境。cv只是个名字可以更改。运行完这一行后可以验证一下这个环境;使用如下命令

$ workon cv

现象为:出现cv打头,就说明我们上面步骤成功了。

5、安装numpy

$ pip install numpy

step5:CMake和编译opencv

这一步很耗时,注意等待。

1、

$ cd ~/opencv
$ mkdir build
$ cd build

2、运行CMake来配置OpenCV 4

$ 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 OPENCV_ENABLE_NONFREE=ON \
    -D INSTALL_PYTHON_EXAMPLES=OFF \
    -D BUILD_EXAMPLES=OFF ..

请确保更新上述命令以使用正确的OpenCV_EXTER_MODES_PATH路径。如果您完全跟随本教程,则不需要更新路径。一旦CMake完成,检查输出是非常重要的。您的输出应该与下面的输出类似(摘自原文,我运行的时候跟这个一样);

树莓派4b opencv 太卡 树莓派安装opencv4_virtualenv_04

树莓派4b opencv 太卡 树莓派安装opencv4_OpenCV_05

3、增加SWAP空间

打开/etc/dphys-swapfile文件:

$ sudo nano /etc/dphys-swapfile

然后编辑CONF_SWAPSIZE的值;将其改成2048;这个值最后还需要改回100。这个是从100MB大小增加到2048MB

# set size to absolute value, leaving empty (default) then uses computed value
# you most likely don't want this, unless you have an special disk situation
# CONF_SWAPSIZE=100
CONF_SWAPSIZE=2048

树莓派4b opencv 太卡 树莓派安装opencv4_OpenCV_06

如果您不执行此步骤,很可能你的PI将挂起。

4、重新启动交换服务:

$ sudo /etc/init.d/dphys-swapfile stop
$ sudo /etc/init.d/dphys-swapfile start

5、编译opencv4

$ make -j4

-j4参数指定我有4个核心来编译。如果有编译错误或Raspberry PI挂/冻结,可以尝试不使用-J4开关。

编译过程大概是这样(摘自原文),在这里,您可以看到OpenCV 4编译后没有任何错误

树莓派4b opencv 太卡 树莓派安装opencv4_OpenCV_07

6、使用两个附加命令安装OpenCV 4

$ sudo make install
$ sudo ldconfig

这一步结束后 ,重复刚才修改SWAP值得步骤,将CONF_SWAPSIZE得值从2048改回到100

step6:将OpenCV 4链接到Python 3虚拟环境中

从SystemSite-Packages目录中的OpenCV安装创建一个符号链接到我们的虚拟环境:(我安装得是python3.7,所以下面命令里面我用得python3.7)

$ cd ~/.virtualenvs/cv/lib/python3.5/site-packages/
$ ln -s /usr/local/python/cv2/python-3.5/cv2.cpython-35m-arm-linux-gnueabihf.so cv2.so
$ cd ~

这一步至关重要。如果不创建符号链接,就无法在脚本中导入OpenCV。另外,确保上述命令中的路径和文件名对于Raspberry PI是正确的。

step7:在Raspberry PI上测试安装的OpenCV 4;打开终端输入下面命令,出现如下画面就表示你已经安装好了opencv4.0.0

$ workon cv
$ python
>>> import cv2
>>> cv2.__version__
'4.0.0'
>>> exit()

树莓派4b opencv 太卡 树莓派安装opencv4_virtualenv_08

安装好后可以测试一下,树莓派4B+opencv4+python 打开摄像头