树莓派3b安装opencv
前言:最近买了一个CSI接口的摄像头,最准用树莓派做人脸识别项目。树莓派上本身已经安装了python2、python3,最开始通过sudo apt-get install python3-opencv命令安装了opencv和numpy库,后来在做人脸识别的过程后发现缺少了contrib库,但是一直安装contrib库失败,最后只能把opencv卸载了,通过编译源码方式重装。其中遇到了各种问题,缺少文件、树莓派内存不足,ssh连接中断。
安装python3上允许的opencv
1、安装numpy库
sudo pip3 install numpy
2、安装opencv所需要的库
sudo apt-get install build-essential git cmake pkg-config -y
sudo apt-get install libjpeg8-dev -y
sudo apt-get install libtiff5-dev -y
sudo apt-get install libjasper-dev -y
sudo apt-get install libpng12-dev -y sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev -y sudo apt-get install libgtk2.0-dev -y
sudo apt-get install libatlas-base-dev gfortran -y
3、下载opencv和opencv_contrib到用户目录,如果使用git下载时网速过慢,可以在浏览器中直接下载后拷贝到用户目录下
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
4、解压压缩文件,并将opencv_contrib库拷贝到opencv下
unzip -O opencv opencv-master.zip
unzip -O opencv_contrib opencv_contrib-master.zip
5、进入到opencv目录下,新建一个build文件夹
cd opencv
mkdir build
6、配置cmake编译环境
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=/home/pi/opencv/opencv_contrib/modules \
-D BUILD_EXAMPLES=ON ..
在这一步的过程中,遇到了缺少文件的错误情况,错误如下:bootstdesc_bgm.i文件下载超时
解决办法:将缺少的文件从网上下载下来,然后拷贝到/home/pi/opencv/opencv_contrib/modules/xfeatures2d/src目录下
文件下载地址参考:https://github.com/opencv/opencv_contrib/issues/1301
缺少的文件一共是:

然后重新运行cmake命令
7、编译opencv源码
sudo make
在程序运行两个小时后,编译报错,提示fatal error: bootstdesc_lbgm.i没有那个文件或目录
解决方法:将/home/pi/opencv/modules/features2d/test目录下的缺少的文件拷贝到/home/pi/opencv/opencv_contrib/modules/xfeatures2d/test目录下,继续运行make命令,编译会从上次停止的地方继续运行。
在程序编译进行到百分之73%时报错,提示缺少文件

解决办法为:和上面的操作一样,先拷贝缺少的文件,然后在/home/pi/opencv/opencv_contrib/modules/xfeature2d/test目录下编辑test_features2d.cpp文件,修改内容如下

后面还会出现类似的错误,解决方法类似。
编译到96%时树莓派一直卡住了,查看系统内存只有30M左右的剩余了,于是将SWAP分区设置为2048才编译成功,整个编译时间大概5个小时。
8、安装opencv
sudo make install
sudo ldconfig
9、测试opencv是否安装正确
树莓派3b安装opencv的更多相关文章
- 利用树莓派来安装opencv从而来调动摄像头工作(没有坑,超超自己试过)
超超最近参加了学校里一位特别厉害的老师讲的课(两天,我就从一个小白然后了解了树莓派以及Arduino这些我之前都没有了解过的东西,由于结课的需要,我们需要自己设计一个创意以及完成作品)所以才有了这篇文 ...
- 树莓派3B安装LEDE
本来想安装openwrt的,但是op官方没有支持pi3,甚至op都不怎么发新版了,仅LEDE分支有缓慢的更新..离题了,之前给pi3装过LEDE,体验不是很好.今天到openwrt官网看了下,发现之前 ...
- 树莓派3b安装Nginx和php7和百度语音合成模块
1.安装sox系统mp3音频播放模块(项目需要) sudo apt-get install lame sudo apt-get install sox sudo apt-get install lib ...
- 树莓派3B安装OpenWrt打造超级路由器
网上有很多树莓派安装OpenWrt的教程,我这里写一下个人安装体验以及踩过的坑
- 树莓派3B+安装64位ubuntu系统和docker工具
想在树莓派3B上安装一些64位应用(例如64位JDK),因此首先要安装64位的操作系统,今天咱们就一起来实战: 原文地址:https://blog.csdn.net/boling_cavalry/ar ...
- 树莓派3B安装远程
步骤1:树莓派3安装 RDP SERVER 及VNC SERVER sudo apt-get install -y tightvncserver sudo vncserver 最后才知道一定要加上VN ...
- 树莓派3b安装Windows10 Arm
感谢老外的这个项目:https://github.com/WOA-Project/WOA-Deployer-Rpi 还有这个:https://uupdump.ml/ 首先从https://uupdum ...
- 树莓派3B+安装&卸载mysql
需求 在树莓派上 安装Mysql 服务,并开启远程访问 步骤 安装 mysql server 1 $ sudo apt-get install mysql-server 我以为中间会让我提示输入 数据 ...
- 树莓派3B 安装微雪LCD5inch显示器(包含软键盘)
树莓派单独使用时,往往需要触摸屏和软键盘用以方便操作,微雪LCD显示器就能较好的实现这个功能, 正好实验室又买入了一个3B的板子和一个5inch的显示器,便对着官方的安装手册,亲自安装了一次. 一:材 ...
随机推荐
- WordtoPdfUtil word转pdf
jar: <dependency> <groupId>com.jacob</groupId> <artifactId>jacob</artifac ...
- bat/cmd批处理程序设计教程
序言 这是一篇技术教程,我真心诚意会用很简单的文字表达清楚自己的意思,只要你识字就能看懂,就能学到知识.我写这篇教程的目的,是让每一个看过这些文字的朋友记住一句话:如果爱可以让事情变的更简单,那么就让 ...
- nginx+tomcat报400的坑
nginx+tomcat的网页,在手机上通过浏览器可以正常访问,但是在自己的app的webview中访问就报400.查了访问日志,每次app中访问该页面,tomcat中就出现一个GET null的申请 ...
- php异常处理小总结
2019年8月23日10:56:31 php很多开发不习惯使用异常处理,因为web开发,重在于快速开发,易用性,高性能,不强调程序健壮性 php的异常使用其实不是太完善,易用性也差点,当然这个对比其他 ...
- mysql 导入txt数据到数据表【原创】
1.如何将数据表导入到mysql的表中,可以使用:load data infile ... into table ... 示例: load data infile 'e:\datainfo.txt' ...
- POJ 3624 Charm Bracelet(01背包模板题)
题目链接 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 52318 Accepted: 21912 Descriptio ...
- nginx配置优化提高并发量
1 nginx配置优化提高并发量 worker_processes 2; 这个按照CPU的核数来决定 2 worker_connections 65535; 这个一般设置65535即可 每个进程允许的 ...
- Error: Error occured while starting App. Original error: Activity used to start app doesn't exist or cannot be launched! Make sure it exists and is a launchable activity
Error: Error occured while starting App. Original error: Activity used to start app doesn't exist or ...
- jiaba
- Three.js构造一个简单的房间
主要研究three.js在3D场景中基本使用:画一个简单的房子.房子上画门和玻璃.房间内放一个床.定义鼠标事件可以移动场景.动画的使用等. 1.Three.js画的一个简单的房子,模拟地板以及四堵墙 ...