此处假设树莓派基础配置(初始化、网络等)已经配置完成。
下面,开始进入正式环节。
在终端执行如下命令
sudo nano /etc/apt/sources.list
(对于nano,它是一个字符终端的文本编辑器,有点像DOS下的editor程序。它比vi/vim要简单得多,比较适合Linux初学者使用。)
先将其中的原有的源注释掉,换成清华镜像
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib
终端执行
sudo nano /etc/apt/sources.list.d/raspi.list
注释其中所有并更换为
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
sudo apt-get update
sudo apt-get upgrade
另外,如果装OpenCV的话磁盘空间最低应保持10G以上
可以使用
df -h
终端输入
sudo raspi-config
进入
选择这两个,并退出,系统会提示你重启,这时等待upgrade完成后用(中断更新会error)
sudo reboot
重启(之后就能看到所有的磁盘空间了)
另外,关于raspi-config 这里有一篇文章做了简介
使用Raspi-config配置工具来设置树莓派
sudo apt-get install build-essential git cmake pkg-config
sudo apt-get install libjpeg.dev libtiff5-dev libpng-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libgtk-3-dev
sudo apt-get install libcanberra-gtk*
sudo apt-get install libatlas-base-dev gfortran
可以更新一下python
sudo apt-get install python3-dev
在github上下载
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
下载完成后可以更改下名字(纯粹为了方便)
mv opencv-4.3.0 opencv
mv opencv_contrib-4.3.0 opencv_contrib
下载一下pip
wget https://bootstrap.pypa.io/get-pip.py
执行下python文件(安装pip)
sudo python3 get-pip.py
sudo pip install virtualenv virtualenvwrapper
配置profile文件
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
echo "export VIRTUALENVWRAPPER_ENV_BIN_DIR=bin" >> ~/.profile
echo "export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv" >> ~/.profile
并执行
source ~/.profile
接下来就可以进入虚拟环境了
mkvirtualenv cv -p python3
首先先安装下numpy(前置条件)
pip install numpy
创建一个build路径并cd进去
cd ~/opencv
mkdir build
cd build
cmake
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 ..
在正式编译之前先扩展一下树莓派的交换空间以提升编译速度
sudo nano /etc/dphys-swapfile
关于树莓派的交换分区SWAP
SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)当成虚拟内存来使用。它和Windows系统的交换文件作用类似,但是它是一段连续的磁盘空间,并且对用户不可见。
另外关于修改交换空间 : 树莓派修改交换空间
重启一下
sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start
使用全部(4个)核心进行编译
make -j4
从SystemSite-Packages目录中的OpenCV安装创建一个符号链接到我们的虚拟环境:
cd ~/.virtualenvs/cv/lib/python3.7/site-packages/
ln -s /usr/local/python/cv2/python-3.7/cv2.cpython-37m-arm-linux-gnueabihf.so cv2.so
cd ~
关于 ln 命令 Linux ln命令
这一步至关重要。如果不创建符号链接,就无法在脚本中导入OpenCV。另外,确保上述命令中的路径和文件名对于Raspberry PI是正确的。
打开终端并输入如下内容
$ workon cv
$ python
>>> import cv2
>>> cv2.__version__
'4.0.0'
>>> exit()
若python正确返回了OpenCV的版本信息,则证明安装成功。
参考博客 : 树莓派4B 中安装opencv4
参考视频 : 使用树莓派4B安装OPENCV4.3.0