在之前的笔记中波波不止一次的提到了树莓派和opencv,但是一直都是零零散散的片段,从没有把完整的编译安装过程记录完全。今天刚好有空就索性写一篇树莓派3b+编译安装opencv3.4.7完整笔记。
树莓派安装系统这一步就略过了。大家也可以参考《树莓派入门及opencv安装教程》。
提示:opencv编译安装过程极其漫长,即便是用4个核心同时工作,那么也可能超过2小时,通常情况基本上是2~6小时左右。因此在安装之前该去上厕所的上厕所哈。
操作步骤:
1、更新系统
- sudo apt-get update
- sudo apt-get -y dist-upgrade
- sudo apt-get update
- sudo apt-get upgrade
2、防止意外,最好screen运行后续指令。这一步安装相关工具。
- sudo apt-get install screen
- sudo apt-get install htop
不过也是防不胜防,上次编译到93%被同事下班断电给断了。因此需要注意的是整个过程保持网络稳定、电源稳定尽量不要触碰树莓派。
3、给接下来的安装腾出足够空间。
- sudo apt-get purge wolfram-engine
- sudo apt-get purge libreoffice*
- sudo apt-get clean
- sudo apt-get autoremove
- sudo sed -i 's/CONF_SWAPSIZE=100/CONF_SWAPSIZE=1024/g' /etc/dphys-swapfile
- sudo /etc/init.d/dphys-swapfile stop
- sudo /etc/init.d/dphys-swapfile start
这一步需要注意的是如果之前自己设置过swap空间,这里可以不用再重复设置了。主要防止因为内存占满而宕机。
4、安装依赖库:一共两段,根据自身开发需要选择其一即可。
- sudo apt-get install build-essential cmake pkg-config
- sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-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 libgtk2.0-dev libgtk-3-dev
- sudo apt-get install libatlas-base-dev gfortran
- sudo apt-get -y install build-essential checkinstall cmake pkg-config yasm
- sudo apt-get -y install git gfortran
- sudo apt-get -y install libjpeg8-dev libjasper-dev libpng12-dev
- sudo apt-get -y install libtiff5-dev
- sudo apt-get -y install libtiff-dev
- sudo apt-get -y install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev
- sudo apt-get -y install libxine2-dev libv4l-dev
- cd /usr/include/linux
- sudo ln -s -f ../libv4l1-videodev.h videodev.h
- cd $cwd
- sudo apt-get -y install libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
- sudo apt-get -y install libgtk2.0-dev libtbb-dev qt5-default
- sudo apt-get -y install libatlas-base-dev
- sudo apt-get -y install libmp3lame-dev libtheora-dev
- sudo apt-get -y install libvorbis-dev libxvidcore-dev libx264-dev
- sudo apt-get -y install libopencore-amrnb-dev libopencore-amrwb-dev
- sudo apt-get -y install libavresample-dev
- sudo apt-get -y install x264 v4l-utils
- # Optional dependencies
- sudo apt-get -y install libprotobuf-dev protobuf-compiler
- sudo apt-get -y install libgoogle-glog-dev libgflags-dev
- sudo apt-get -y install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen
5、Python系统已经装过了,无需安装。不放心的可以再执行一下。
- sudo apt-get install python3-dev
- sudo apt-get install python3-pip
6、下载opencv源码。
大家自行去GitHub上面找对应版本,波波这里仅安装3.4.7,因为版本高了树莓派3b+上容易报错。提升下载速度的方法也放在菠菜园博客中了。
7、切换到opencv源码目录,建立文件夹build,切换到build文件夹下执行cmake。
- cd ~/opencv-3.4.7/
- mkdir build
- cd build
- cmake -D CMAKE_BUILD_TYPE=RELEASE \
- -D CMAKE_INSTALL_PREFIX=/usr/local \
- -D INSTALL_PYTHON_EXAMPLES=ON \
- -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.7/modules \
- -D BUILD_EXAMPLES=ON ..
8、编译并安装。
- make -j4
- sudo make install
- sudo ldconfig
- sudo apt-get update
- sudo reboot //重启系统
9、测试效果。
- $ python3
- Python 3.5.3 (default, September 5 2018, 14:11:04)
- [GCC 6.3.0 20170124] on linux
- Type "help", "copyright", "credits" or "license" for more information.
- >>> import cv2
- >>> cv2.__version__
- '3.4.3'
- >>>
好了,笔记结束。附一张编译安装完成的截图。(截图版本3.4.3)