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


Posted in Python onMarch 30, 2015

在树莓派2或树莓派B+上安装Python和OpenCV的教程我的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。我们的项目将会包括家庭监控应用,例如说房间里面的运动检测和人员跟踪。

下面是一个运动检测和跟踪的简单例子,当时我正打着电话在公寓里面来回走动。
在树莓派2或树莓派B+上安装Python和OpenCV的教程在 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,然后读取和显示一幅图像。
在树莓派2或树莓派B+上安装Python和OpenCV的教程总结

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

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

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

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

Python 相关文章推荐
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
Feb 14 Python
Python实现字符串与数组相互转换功能示例
Sep 22 Python
Python内置模块hashlib、hmac与uuid用法分析
Feb 12 Python
matplotlib 输出保存指定尺寸的图片方法
May 24 Python
Django实现一对多表模型的跨表查询方法
Dec 18 Python
wxPython之wx.DC绘制形状
Nov 19 Python
Python cookie的保存与读取、SSL讲解
Feb 17 Python
Python脚本去除文件的只读性操作
Mar 05 Python
Django用户身份验证完成示例代码
Apr 03 Python
将不规则的Python多维数组拉平到一维的方法实现
Jan 11 Python
Python Matplotlib绘制两个Y轴图像
Apr 13 Python
python开发人人对战的五子棋小游戏
May 02 Python
Python中利用函数装饰器实现备忘功能
Mar 30 #Python
利用Python绘制MySQL数据图实现数据可视化
Mar 30 #Python
Python面向对象编程中的类和对象学习教程
Mar 30 #Python
详细介绍Python函数中的默认参数
Mar 30 #Python
在Python中利用Into包整洁地进行数据迁移的教程
Mar 30 #Python
在Linux上安装Python的Flask框架和创建第一个app实例的教程
Mar 30 #Python
使用Python中PDB模块中的命令来调试Python代码的教程
Mar 30 #Python
You might like
PHP取整数函数常用的四种方法小结
2012/07/05 PHP
什么是OneThink oneThink后台添加插件步骤
2016/04/13 PHP
thinkPHP5框架中widget的功能与用法详解
2018/06/11 PHP
thinkphp5.1框架中容器(Container)和门面(Facade)的实现方法分析
2019/08/05 PHP
JavaScript 特殊字符
2007/04/05 Javascript
ajax与302响应代码测试
2013/10/23 Javascript
Jquery Ajax解析XML数据(同步及异步调用)简单实例
2014/02/12 Javascript
基于JavaScript制作霓虹灯文字 代码 特效
2015/09/01 Javascript
全面解析Bootstrap排版使用方法(标题)
2015/11/30 Javascript
js实现精确到秒的日期选择器完整实例
2016/04/30 Javascript
JavaScript中数组slice和splice的对比小结
2016/09/22 Javascript
10分钟掌握XML、JSON及其解析
2020/12/06 Javascript
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
2017/03/23 jQuery
js实现鼠标拖拽多选功能示例
2017/08/01 Javascript
Angularjs添加排序查询功能的实例代码
2017/10/24 Javascript
js中实现继承的五种方法
2021/01/25 Javascript
python基础教程之基本数据类型和变量声明介绍
2014/08/29 Python
python的re模块应用实例
2014/09/26 Python
在Python3中初学者应会的一些基本的提升效率的小技巧
2015/03/31 Python
python制作爬虫爬取京东商品评论教程
2016/12/16 Python
浅谈python jieba分词模块的基本用法
2017/11/09 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
2019/02/13 Python
pandas 选取行和列数据的方法详解
2019/08/08 Python
python实现的分析并统计nginx日志数据功能示例
2019/12/21 Python
Mysql数据库反向生成Django里面的models指令方式
2020/05/18 Python
深入了解python列表(LIST)
2020/06/08 Python
python在协程中增加任务实例操作
2021/02/28 Python
ASICS印度官方网站:日本专业运动品牌
2020/06/20 全球购物
javascript实现用户必须勾选协议实例讲解
2021/03/24 Javascript
个人自我鉴定范文
2013/10/04 职场文书
合作经营协议书
2014/04/17 职场文书
社区禁毒工作方案
2014/06/02 职场文书
2014各大专业毕业生自我评价
2014/09/17 职场文书
电影小兵张嘎观后感
2015/06/03 职场文书
先进基层党组织主要事迹材料
2015/11/03 职场文书
Python selenium绕过webdriver监测执行javascript
2022/04/12 Python