第七次
(1) 在树莓派中安装opencv库
(作业提供的参考)
1.扩展文件系统
$ sudo raspi-config
raspi-config ”菜单中选择“ Advanced Options ”项。
2.安装依赖项
更新软件源,更新软件
sudo apt-get update && sudo apt-get upgrade
Cmake等开发者工具
sudo apt-get install build-essential cmake pkg-config
图片I/O包
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
视频I/O包
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
OpenCV用于显示图片的子模块需要GTK
sudo apt-get install libgtk2.0-dev libgtk-3-dev
性能优化包
sudo apt-get install libatlas-base-dev gfortran
安装 Python2.7 & Python3
sudo apt-get install python2.7-dev python3-dev
3.下载OpenCV源代码
$ CD〜
$ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.3.0.zip
$解压缩opencv.zip
原先安装的最新版本,但是出现无法解压的情况,于是重新找了网站,下载了3.3.0版本,成功解压。
4.Python 2.7或Python 3
-
在Raspberry Pi上安装OpenCV 3 + Python
$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python get-pip.py
$ sudo python3 get-pip.py
-
安装虚拟环境
sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv virtualenvwrapper
- 配置~/.profile
打开配置文件:
sudo nano ~/.profile
开始配置:
export WORKON_HOME=$HOME/.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
- 创建虚拟机
mkvirtualenv cv -p python3
- 进入虚拟机 (每次进入之前都刷新一次配置文件)
workon cv
- 安装numpy
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy
(5)编译OpenCV
cd ~/opencv-3.3.0/
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.3.0/modules \
-D BUILD_EXAMPLES=ON ..
-
打开swapfile文件 ,编辑为CONF_SWAPSIZE=1024,已调整交换空间大小
sudo nano /etc/dphys-swapfile
-
重启配置文件的服务
sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start
-
编译
make -j4
1.编译遇到的问题: 编译卡住
解决办法,我们参考了一篇很好的博客,最终得以解决。
解决步骤:
打开cap_ffmpeg_impl.hpp文件
nano ~/opencv-3.3.0/modules/Videoio/sRc/cap_ffmpeg_impl.hpp
在顶部添加下列内容
#define AV_CODEC_FLAG_GLOBAL_HEADER (1 << 22)
#define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER
#define AVFMT_RAWPICTURE 0x0020
重新编译以后,编译成功了!
- 在Pi上安装OpenCV
sudo make install
sudo ldconfig