本文是根据如下链接翻译而来:Install OpenCV 4 on your Raspberry Pi;经过我的实验,可以在raspberry pi 4B(debian系统)上安装并使用。我的SD卡是闪迪,64G的;要搞图像的话,SD卡尽量大点。内存4G.
首先你需要一个屏幕连接你的树莓派,可以使用VNC或者直接HDMI;
文中只摘出安装步骤:详细的解释可以点击原文
$ sudo raspi-config
然后按步骤选择Advanced Options:
再选择Expand Filesystem :Raspberry PI “Expand Filesystem”菜单允许我们利用整个闪存卡。这将给我们必要的空间来安装OpenCV 4和其他软件包。(通过键盘上下左右键来选择)
然后点击finish,最后用如下代码重启一下树莓派。
$ sudo reboot
在重新启动之后,您的文件系统应该已经扩展到包含了微SD卡上的所有可用空间。您可以通过执行df-h并检查输出来验证磁盘是否已展开:
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 gfortra
7、安装Python 3
$ sudo apt-get install python3-dev
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
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
这一步很耗时,注意等待。
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完成,检查输出是非常重要的。您的输出应该与下面的输出类似(摘自原文,我运行的时候跟这个一样);
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
如果您不执行此步骤,很可能你的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编译后没有任何错误
6、使用两个附加命令安装OpenCV 4
$ sudo make install
$ sudo ldconfig
这一步结束后 ,重复刚才修改SWAP值得步骤,将CONF_SWAPSIZE得值从2048改回到100
从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+opencv4+python 打开摄像头