本文所用的是树莓派4B搭载32GSD卡,在raspberry pi 4B(debian系统)上安装并使用
第一步:扩展SD卡空间。安装OpenCV环境需要较大的存储空间
sudo raspi-config
选择Advanced Options:
再选择Expand Filesystem。
然后点击finish,最后重启树莓派,就完成了磁盘的扩展。
可以使用
df -h
查看磁盘空间。
第二步:安装OpenCV相关依赖项
更新系统
sudo apt-get update && sudo apt-get upgrade
安装开发工具
sudo apt-get install build-essential cmake unzip pkg-config
安装图像和视频库
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
安装GTK,GUI后端
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
安装免除GTK警告的包
sudo apt-get install libcanberra-gtk*
安装Python3
sudo apt-get install python3-dev
第三步:下载OpenCV
下载OpenCV和OpenCV_contrib,注意:若安装的是OpenCV-4.3.0,则下载OpenCV_contrib时,必须也是OpenCV_contrib-4.3.0
cd ~
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.3.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.3.0.zip
可直接下载,利用远程工具传入树莓派,进行解压缩,
下载链接:https://download.youkuaiyun.com/download/weixin_42573595/12836589,
解压缩
unzip opencv.zip
unzip opencv_contrib.zip
改名字(也可以不改,则下面用opencv-4.3.0 opencv_contrib-4.3.0操作)
mv opencv-4.0.0 opencv
mv opencv_contrib-4.0.0 opencv_contrib
第四步:为OpenCV配置Python3虚拟环境
安装pip
wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py
安装虚拟环境
sudo pip install virtualenv virtualenvwrapper
sudo rm -rf ~/get-pip.py ~/.cache/pip
打开~/.profile
sudo ~/.profile
将以下行添加到您的~/.profile中
export WORKON_HOME=/home/pi/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh
export VIRTUALENVWRAPPER_ENV_BIN_DIR=bin
重新加载一下
source ~/.profile
安装numpy
pip install numpy
第五步:编译OpenCV(耗时较长)
cd ~/opencv
mkdir build
cd build
运行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=ON \
-D BUILD_EXAMPLES=ON ..
请确保更新上述命令以使用正确的OpenCV_EXTER_MODES_PATH路径。如果您完全跟随本教程,则不需要更新路径。一旦CMake完成,检查输出是非常重要的。您的输出应该与下面的输出类似(摘自原文,我运行的时候跟这个一样);
增加SWAP空间
sudo nano /etc/dphys-swapfile
将CON_SWAPSIZE修改为2048
重新启动交换服务
sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start
编译OpenCV4
make -j4
-j4参数指定我有4个核心来编译。如果有编译错误或Raspberry PI挂/冻结,可以尝试不使用-J4开关。
编译过程大概是这样(摘自原文),在这里,您可以看到OpenCV 4编译后没有任何错误
使用两个附加命令安装OpenCV 4
sudo make install
sudo ldconfig
这一步结束后 ,重复刚才修改SWAP值得步骤,将CONF_SWAPSIZE得值从2048改回到100
第六步:将OpenCV4链接到Python3虚拟环境中
从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是正确的。
第七步:在Raspberry PI上测试安装的OpenCV 4;打开终端输入下面命令,出现如下画面就表示你已经安装好了opencv4.0.0
workon cv
python
>>> import cv2
>>> cv2.__version__
'4.3.0'
>>> exit()
至此,全剧终
参考博客:https://blog.youkuaiyun.com/Mr_FengT/article/details/102588926