在树莓派2或树莓派B+上安装Python和OpenCV的教程

这篇文章主要介绍了在树莓派2或树莓派B+上安装Python和OpenCV的教程,主要基于GTK库,并以Python2.7和OpenCV 2.4.X版本的安装作为示例,需要的朋友可以参考下

我的RaspBerry Pi 2昨天刚邮到,这家伙看上去很小巧可爱。

这小家伙有4核900MHZ的处理器,1G内存。要知道,RaspBerry Pi 2 可比我中学电脑实验室里大多数电脑快多了。

话说,自从RaspBerry Pi 2发布以来,我收到了很多请求,要求我能写一个在它上面安装OpenCV和Python的详细说明。

因此如果你想在RaspBerry Pi启动运行OpenCV和Python,就往下面看!

在博文的剩余部分,我将提供在RaspBerry Pi 2 和RaspBerry Pi B+上的详细安装说明。

我也会说明每一步的安装耗时。其中一些步骤需要较多的处理时间。举个例子,在RaspBerry Pi 2 编译OpenCV花费大概2.8小时,在 RaspBerry Pi B+上则是9.5小时。所以请你据此安排你的安装吧。

最后,提醒一下我们会在PyImageSearch Gurus 计算机视觉课程中用到RaspBerry Pi。我们的项目将会包括家庭监控应用,例如说房间里面的运动检测和人员跟踪。

下面是一个运动检测和跟踪的简单例子,当时我正打着电话在公寓里面来回走动。

在 RaspBerry Pi 2/B+上安装OpenCV和Python

这里假定你已经有了RaspBerry Pi 2/B+,且已经安装好。如果没有的话,我建议你买一个,它们既便宜也好玩。

个人来说,我更愿意多花一点钱从Canakit买。他们的物流很快也比较可靠,加之他们的 ready-to-go服务也很好。

好吧,我们开始OpenCV和Python的安装

步骤0:

我们假定你已经打开RaspBerry Pi 2/B+。打开终端,我们先更新和升级已安装的软件包,然后更新RaspBerry Pi固件。

 

$ sudo apt-get update $ sudo apt-get upgrade $ sudo rpi-update

步骤1:

安装所需的安装工具和包:

 

$ sudo apt-get install build-essential cmake pkg-config

build-essential 和 pkg-config可能都已经安装。以防万一,我们还是将它们键入apt-get命令中。

耗时:

RaspBerry Pi B+:小于2分钟

RaspBerry Pi 2:小于40秒

步骤2:

安装必要的图像I/O包,这样你才可以读入JPEG,PNG,TIFF等这些格式的图像。

$ sudo apt-get install libjpeg8-dev libtiff4-dev libjasper-dev libpng12-dev

耗时:

RaspBerry Pi B+: 小于5钟

RaspBerry Pi 2: 小于30秒

步骤3:

安装GTK开发库,这个库用来构建GUI。同时OpenCV中的highgui库也需要它来在屏幕上显示图像。

 

$ sudo apt-get install libgtk2.0-dev

耗时:

RaspBerry Pi B+: 小于10分钟

RaspBerry Pi 2:小于3分钟

步骤4:

安装必要的视频I/O包,OpenCV需要它们来读入视频文件

 

$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev

耗时:

RaspBerry Pi B+: 小于5分钟

RaspBerry Pi 2: 小于30秒

步骤5:

安装OpenCV优化操作时所需库。

 

$ sudo apt-get install libatlas-base-dev gfortran

耗时:

RaspBerry Pi B+:小于2分钟

RaspBerry Pi 2:小于30秒

步骤6:

安装pip:

 

$ wget https://bootstrap.pypa.io/get-pip.py $ sudo python get-pip.py

耗时:

RaspBerry Pi B+:小于2分钟

RaspBerry Pi 2:小于30秒

步骤7:

安装virtualenv和virtualenvwrapper

 

$ sudo pip install virtualenv virtualenvwrapper

然后,更新~/.profile文件如下:

 

export WORKON_HOME=$HOME/.virtualenvs source /usr/local/bin/virtualenvwrapper.sh

重新载入.profile文件

 

$ source ~/.profile

创建你的计算机视觉虚拟环境

 

$ mkvirtualenv cv

耗时:

RaspBerry Pi B+: 小于2分钟

RaspBerry Pi 2: 小于2分钟

步骤8:

现在我们安装Python 2.7开发工具:

 

$ sudo apt-get install python2.7-dev

注意:我们将使用Python2.7。因为OpenCV 2.4.X不支持Python 3,也不太清楚OpenCV 3.0的python接口什么时候才能完善。所以我建议现在还是使用OpenCV2.4.X的好。

我们也需要安装NumPy,因为OpenCV的Python接口通过Numpy的多维数组来表示图像。

 

$ pip install numpy

耗时:

RaspBerry Pi B+: 小于45分钟

RaspBerry Pi 2: 小于15分钟

步骤9:

下载和解压OpenCV:

$ wget -O opencv-2.4.10.zip http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.10/opencv-2.4.10.zip/download $ unzip opencv-2.4.10.zip $ cd opencv-2.4.10

安装:

 

$ mkdir build $ cd build $ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_NEW_PYTHON_SUPPORT=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON ..

耗时:

RaspBerry Pi B+: 小于3分钟

RaspBerry Pi 2: 小于1.5分钟

编译OpenCV:

 

$ make

重要:确定你在cv虚拟环境中,OpenCV也要根据该环境中的Python和NumPy中进行编译。否则的话,OpenCV就会和系统中的Python和NumPy编译在一起,会产生各种问题。

耗时:

RaspBerry Pi B+: 小于 9.5 小时

RaspBerry Pi 2: 小于2.8小时

最后,我们安装OpenCV:

 

$ sudo make install $ sudo ldconfig

耗时:

RaspBerry Pi B+: 小于 3分钟

RaspBerry Pi 2: 小于1分钟

步骤10:

进行到这一步的时候,OpenCV已经应该已经安装到/usr/local/lib/python2.7/site-packages中了。

但是为了在cv虚拟环境中使用OpenCV,我们先需要符合链接到我们的site-packages目录:

 

$ cd ~/.virtualenvs/cv/lib/python2.7/site-packages/ $ ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so $ ln -s /usr/local/lib/python2.7/site-packages/cv.py cv.py

步骤11:

最后,我们测试一下OpenCV和Python的安装:

 

$ workon cv $ python >>> import cv2 >>> cv2.__version__ '2.4.10'

OpenCV和Python已经成功安装到你的RaspBerry Pi了。

这是在我的RaspBerry Pi上的运行例子,我ssh登录到 RaspBerry Pi,然后读取和显示一幅图像。

总结

这篇博文中,我详细介绍了如何在RaspBerry Pi 2 /RaspBerry Pi B+上安装Python和OpenCV。也提供了他们的安装耗时,请酌情考虑你的安装。

随着RaspBerry Pi的升级,安装指令可能有所变化。如果你遇到一些极端情况或安装指令的变化,请随时联系我。当然我也不能保证每封邮件都能回复,所以最好是将如何在 RaspBerry Pi上安装OpenCV和Python的方法总结成一个列表。

不久以后,我会讲如何在RaspBerry Pi操作其附加的camera。

在那之前,看看PyImageSearch Gurus计算机视觉课程。我们将在其中一些工程中用到RaspBerry Pi,就比如说构建一个监控应用来进行房间内部的运动检测和人员跟踪。

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...