Installing OpenCV 3 on a Raspberry Pi 3 running Raspbian Stretch

Step 1:Expand FileSystem

sudo raspi-config
  • And then select the “Advanced Options” menu item:

  • Followed by selecting “Expand filesystem”:

  • sudo reboot 重启

  • df -h 查看磁盘使用
    可以卸载一些不常用软件,释放存储空间

     sudo apt-get purge wolfram-engine
     sudo apt-get purge libreoffice*
     sudo apt-get clean
     sudo apt-get autoremove
    

Step 2:Install Dependencies

升级系统软件

sudo apt-get update && sudo apt-get upgrade

安装相关开发工具,包括cmake等

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

使用OpenCV子模块highgui时去显示照片等GUI。安装GTK开发包去编译highgui模块

sudo apt-get install libgtk2.0-dev libgtk-3-dev

OpenCV内部的许多操作(即矩阵操作)可以通过安装一些额外的依赖项来进一步优化:

sudo apt-get install libatlas-base-dev gfortran

安装python

sudo apt-get install python2.7-dev python3-dev

Step 3: Download the OpenCV source code

下载opencv3.3。3以上的版本包含了一些处理dnn的模块,在项目中用的到

cd ~
wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.3.0.zip
unzip opencv.zip

我们需要完整安装OpenCV 3(例如访问SIFT和SURF等特性),因此还需要获取OpenCV contrib存储库、(版本要与opencv版本一致,3.3)

wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.3.0.zip
unzip opencv_contrib.zip

安装pip

wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
sudo python3 get-pip.py
sudo pip install virtualenv virtualenvwrapper
sudo rm -rf ~/.cache/pip

修改文件~/.profile,,完成之后,source ~/.profile

# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

接下来创建用于计算机视觉开发的Python虚拟环境(cv Python虚拟环境完全独立,并与Raspbian Stretch下载中包含的默认Python版本隔离。 全局site-packages目录中的任何Python包都不可用于cv虚拟环境。 同样,安装在cv的site-packages中的任何Python包都不可用于全局安装的Python。 当您在Python虚拟环境中工作时,请记住这一点,这将有助于避免许多混乱和令人头疼的问题。)

mkvirtualenv cv -p python2
或者
mkvirtualenv cv -p python3

使用workon进入虚拟环境(要验证并确保您处于cv虚拟环境中,请检查命令行,如果您在提示符之前看到了文本(cv),那么您就处于cv虚拟环境中)

 source ~/.profile
$ workon cv

安装numpy (确保进入cv环境)

 pip install numpy

安装opencv(确保进入cv环境)

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 ..

确保Python2,或python3都在虚拟环境下。
在开始编译过程之前,应该增加交换空间大小。 这使OpenCV能够与Raspberry PI的所有四个内核一起编译,而不会因内存问题而导致编译挂起。

/etc/dphys-swapfile文件下修改CONF_SWAPSIZE
# 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=1024

然后restart swap(It is possible to burn out the Raspberry Pi microSD card because flash memory has a limited number of writes until the card won’t work. It is highly recommended that you change this setting back to the default when you are done compiling and testing the install (see below).)

$ sudo /etc/init.d/dphys-swapfile stop
$ sudo /etc/init.d/dphys-swapfile start

编译opcv(一个多小时)

make -j4

然后安装

sudo make install
sudo ldconfig

安装完成之后。一般opencv会安装在
/usr/local/lib/python2.7/site-pacakges或者/usr/local/lib/python3.5/site-packages目录下
我们的最后一步是将OpenCV绑定sym链接到cv虚拟环境中

Python2
 ls -l /usr/local/lib/python2.7/site-packages/查看下安装包
 
$ cd ~/.virtualenvs/cv/lib/python2.7/site-packages/ 链接
$ ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so

Python3:so文件可能名字会变
ls -l /usr/local/lib/python3.5/site-packages/查看下安装包

$ cd /usr/local/lib/python3.5/site-packages/
$ sudo mv cv2.cpython-35m-arm-linux-gnueabihf.so cv2.so 重命名

 cd ~/.virtualenvs/cv/lib/python3.5/site-packages/ 链接
 ln -s /usr/local/lib/python3.5/site-packages/cv2.so cv2.so

Step 4: test

$ source ~/.profile 
$ workon cv
$ python
>>> import cv2
>>> cv2.__version__
'3.3.0'
>>>

成功之后,删除包,释放空间

rm -rf opencv-3.3.0 opencv_contrib-3.3.0

不要忘记把swap空间改回来

/etc/dphys-swapfile
# 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=1024

修改完成之后:

$ sudo /etc/init.d/dphys-swapfile stop
$ sudo /etc/init.d/dphys-swapfile start

完成安装

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值