百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

树莓派安装opencv完整教程

itomcoil 2025-02-06 15:15 27 浏览


小生深知网络上树莓派安装的教程层出不穷,但是基本上都是从其他地方copy的,而且copy的不完全,而且树莓派下用lena.jpgopencv的教程很难找到。虽然互联网的共享精神值得肯定,但是不负责任的共享对于急于使用树莓派+opencv的童鞋是极为不负责任的,最近帮学弟在树莓派3上配opencv3.0,本着科学需要负责和专业,希望大家能不再走弯路,毕竟一次编译opencv短则10分钟,长则几小时,加快编译速度对初学者来说也是个相对冷门的技术,本文作如下总结。

本文以树莓派2/3安装opencv3.0附加python2.7为例,介绍完整流程,请一次就执行完这些流程,期间可能有些步骤耗时很长,所以可以拿本书看看,或者用手机看个剧,整体耗时应该在一部电影的时间左右。

首先进入Raspberry Pi系统,确保树莓派连上网络,然后Ctrl + Alt +t打开命令终端(直接点击终端图标可能会卡),如果终端窗口没有出现的话,从顶部任务栏可以找到,点开就好。


"~" 符号树莓派键盘打不出来 用笔记本SSH连上去操作

首先是以下这几条更新命令,每次单独执行:

1. sudo apt-get update

2. sudo apt-get upgrade

3. sudo rpi-update

然后执行安装opencv的构建相关命令:

1. sudo apt-get install build-essential git cmake pkg-config

然后是以下这几条命令安装图片工具包,每次单独执行(网上有很多一起执行的,但是经常出现问题)

1. sudo apt-get install libjpeg8-dev

2. sudo apt-get install libtiff5-dev

3. sudo apt-get install libjasper-dev

4. sudo apt-get install libpng12-dev

然后是视频I/O包:

1. sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev

下面安装GTK:

1. sudo apt-get install libgtk2.0-dev

然后安装优化函数的包:

1. sudo apt-get install libatlas-base-dev gfortran

然后执行以下命令下载opencv3.0:

1. cd /home/pi

2. git clone https://github.com/opencv/opencv.git

3. cd opencv

4. git checkout 3.0.0

然后安装opencv_contrib:

1. cd /home/pi

2. git clone https://github.com/opencv/opencv_contrib.git

3. cd opencv_contrib

4. git checkout 3.0.0

然后安装开发包:

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

然后安装pip:

1. wget https://bootstrap.pypa.io/get-pip.py

2. sudo python get-pip.py

然后安装virtualenv virtualenvwrapper:

1. sudo pip install virtualenv virtualenvwrapper

2. sudo rm -rf ~/.cache/pip

下面这个步骤不仅仅是命令了,打开~/.profile文件,我是使用vim打开的:

1. sudo nano ~/.profile("~"符号树莓派键盘打不出来 用笔记本SSH连上去)

打开profile后,在这个文件最后,添加以下内容后保存退出:

1. # virtualenv and virtualenvwrapper

2. export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2.7

3. export WORKON_HOME=$HOME/.virtualenvs

4. source /usr/local/bin/virtualenvwrapper.sh

然后执行下面这个命令:

1. source ~/.profile

然后创建虚拟工作环境并进入:

1. sudo mkvirtualenv LC

2. workon LC

一定要确保进去刚刚创建的虚拟环境了,进入虚拟环境的标志是进去后命令的最前面(绿字前面)都会增加"(LC)"。

下面在虚拟环境中安装numpy:

1. pip install numpy

2. sudo rm -rf ~/.cache/pip/

3. pip install numpy

一定确保在刚刚的虚拟环境下进行以下操作,如果新开了一个命令行窗口,那么就依次执行 source ~/.profile 命令和 workon LC 命令进入虚拟环境再执行以下操作。

执行以下命令来设置编译:

1. cd ~/opencv

2. mkdir build

3. cd build

4. cmake -D CMAKE_BUILD_TYPE=RELEASE \

5. -D CMAKE_INSTALL_PREFIX=/usr/local \

6. -D INSTALL_C_EXAMPLES=ON \

7. -D INSTALL_PYTHON_EXAMPLES=ON \

8. -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \

9. -D BUILD_EXAMPLES=ON ..

执行以下命令开始正式编译opencv3.0:

1. make -j56(这个如果报错就别写-j56了,写-j4,主要是为了强行加快opencv编译速度)我建议直接写成make -j4

编译完后进行安装:

1. sudo make install

安装后进行相关配置:

1. sudo ldconfig

整个流程严格走下来就应该已经成功了,可以关掉这个命令行窗口了。


网上很多打开摄像头的实例都是基于USB 摄像头的,很少介绍原装CSI摄像头的,我们需要做一下如下修改

sudo nano /etc/modules-load.d/ modules.conf

在最后添加一行 bcm2835-v4l2

意思是在系统启动之后加载bcm2835-v4l2这个模块

然后重启,会发现/dev/下面发现video0设备节点,opencv就能正常调用了


××××××××××××××××××××××××下面是测试opencv的流程×××××××××××××××××××××××××××××××

cd opencv/samples/python2/

sudo python video.py

出现视频框 完美结束

接下来 就可以跟我一起学做人脸识别门禁系统 人脸追踪

相关推荐

selenium(WEB自动化工具)

定义解释Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7,8,9,10,11),MozillaF...

开发利器丨如何使用ELK设计微服务中的日志收集方案?

【摘要】微服务各个组件的相关实践会涉及到工具,本文将会介绍微服务日常开发的一些利器,这些工具帮助我们构建更加健壮的微服务系统,并帮助排查解决微服务系统中的问题与性能瓶颈等。我们将重点介绍微服务架构中...

高并发系统设计:应对每秒数万QPS的架构策略

当面试官问及"如何应对每秒几万QPS(QueriesPerSecond)"时,大概率是想知道你对高并发系统设计的理解有多少。本文将深入探讨从基础设施到应用层面的解决方案。01、理解...

2025 年每个 JavaScript 开发者都应该了解的功能

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发。1.Iteratorhelpers开发者...

JavaScript Array 对象

Array对象Array对象用于在变量中存储多个值:varcars=["Saab","Volvo","BMW"];第一个数组元素的索引值为0,第二个索引值为1,以此类推。更多有...

Gemini 2.5编程全球霸榜,谷歌重回AI王座,神秘模型曝光,奥特曼迎战

刚刚,Gemini2.5Pro编程登顶,6美元性价比碾压Claude3.7Sonnet。不仅如此,谷歌还暗藏着更强的编程模型Dragontail,这次是要彻底翻盘了。谷歌,彻底打了一场漂亮的翻...

动力节点最新JavaScript教程(高级篇),深入学习JavaScript

JavaScript是一种运行在浏览器中的解释型编程语言,它的解释器被称为JavaScript引擎,是浏览器的一部分,JavaScript广泛用于浏览器客户端编程,通常JavaScript脚本是通过嵌...

一文看懂Kiro,其 Spec工作流秒杀Cursor,可移植至Claude Code

当Cursor的“即兴编程”开始拖累项目质量,AWS新晋IDEKiro以Spec工作流打出“先规范后编码”的系统工程思维:需求-设计-任务三件套一次生成,文档与代码同步落地,复杂项目不...

「晚安·好梦」努力只能及格,拼命才能优秀

欢迎光临,浏览之前点击上面的音乐放松一下心情吧!喜欢的话给小编一个关注呀!Effortscanonlypass,anddesperatelycanbeexcellent.努力只能及格...

JavaScript 中 some 与 every 方法的区别是什么?

大家好,很高兴又见面了,我是姜茶的编程笔记,我们一起学习前端相关领域技术,共同进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力在JavaScript中,Array.protot...

10个高效的Python爬虫框架,你用过几个?

小型爬虫需求,requests库+bs4库就能解决;大型爬虫数据,尤其涉及异步抓取、内容管理及后续扩展等功能时,就需要用到爬虫框架了。下面介绍了10个爬虫框架,大家可以学习使用!1.Scrapysc...

12个高效的Python爬虫框架,你用过几个?

实现爬虫技术的编程环境有很多种,Java、Python、C++等都可以用来爬虫。但很多人选择Python来写爬虫,为什么呢?因为Python确实很适合做爬虫,丰富的第三方库十分强大,简单几行代码便可实...

pip3 install pyspider报错问题解决

运行如下命令报错:>>>pip3installpyspider观察上面的报错问题,需要安装pycurl。是到这个网址:http://www.lfd.uci.edu/~gohlke...

PySpider框架的使用

PysiderPysider是一个国人用Python编写的、带有强大的WebUI的网络爬虫系统,它支持多种数据库、任务监控、项目管理、结果查看、URL去重等强大的功能。安装pip3inst...

「机器学习」神经网络的激活函数、并通过python实现激活函数

神经网络的激活函数、并通过python实现whatis激活函数感知机的网络结构如下:左图中,偏置b没有被画出来,如果要表示出b,可以像右图那样做。用数学式来表示感知机:上面这个数学式子可以被改写:...