前言:最近买了一个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的更多相关文章

  1. 利用树莓派来安装opencv从而来调动摄像头工作(没有坑,超超自己试过)

    超超最近参加了学校里一位特别厉害的老师讲的课(两天,我就从一个小白然后了解了树莓派以及Arduino这些我之前都没有了解过的东西,由于结课的需要,我们需要自己设计一个创意以及完成作品)所以才有了这篇文 ...

  2. 树莓派3B安装LEDE

    本来想安装openwrt的,但是op官方没有支持pi3,甚至op都不怎么发新版了,仅LEDE分支有缓慢的更新..离题了,之前给pi3装过LEDE,体验不是很好.今天到openwrt官网看了下,发现之前 ...

  3. 树莓派3b安装Nginx和php7和百度语音合成模块

    1.安装sox系统mp3音频播放模块(项目需要) sudo apt-get install lame sudo apt-get install sox sudo apt-get install lib ...

  4. 树莓派3B安装OpenWrt打造超级路由器

    网上有很多树莓派安装OpenWrt的教程,我这里写一下个人安装体验以及踩过的坑

  5. 树莓派3B+安装64位ubuntu系统和docker工具

    想在树莓派3B上安装一些64位应用(例如64位JDK),因此首先要安装64位的操作系统,今天咱们就一起来实战: 原文地址:https://blog.csdn.net/boling_cavalry/ar ...

  6. 树莓派3B安装远程

    步骤1:树莓派3安装 RDP SERVER 及VNC SERVER sudo apt-get install -y tightvncserver sudo vncserver 最后才知道一定要加上VN ...

  7. 树莓派3b安装Windows10 Arm

    感谢老外的这个项目:https://github.com/WOA-Project/WOA-Deployer-Rpi 还有这个:https://uupdump.ml/ 首先从https://uupdum ...

  8. 树莓派3B+安装&卸载mysql

    需求 在树莓派上 安装Mysql 服务,并开启远程访问 步骤 安装 mysql server 1 $ sudo apt-get install mysql-server 我以为中间会让我提示输入 数据 ...

  9. 树莓派3B 安装微雪LCD5inch显示器(包含软键盘)

    树莓派单独使用时,往往需要触摸屏和软键盘用以方便操作,微雪LCD显示器就能较好的实现这个功能, 正好实验室又买入了一个3B的板子和一个5inch的显示器,便对着官方的安装手册,亲自安装了一次. 一:材 ...

随机推荐

  1. api-doc-php

    主要功能: 根据接口注释自动生成接口文档 演示地址 [Gitee Pages:]http://itxq.gitee.io/api-doc-php 开源地址: [GigHub:]https://gith ...

  2. (原)使用ass字幕文件通过ffmpeg给视频添加字幕的一些研究

    使用ass字幕文件通过ffmpeg给视频添加字幕的一些研究 Author:lihaiping1603@aliyun.com Create:2019-09-04 最近对ffmpeg给视频文件添加字幕效果 ...

  3. Mouse Genome Informatics(MGI)数据库介绍

    欢迎来到"bio生物信息"的世界 有些人研究了很久的基因,都不一定知道他们研究的基因在小鼠模型上发挥什么作用--陈文燕 今天想介绍一个数据库MGI,全称Mouse Genome I ...

  4. xcode简单教程

    1.使用Xcode软件.Xcode是一个苹果系统上的集成开发环境(IDE),就是说用Xcode就能编写C语言程序,并编译运行.也能开发ios程序等,是一种软件.在windows上类似这种能编c语言的还 ...

  5. html2canvas 将网页截图为图片,上传base64 到服务端

    await html2canvas(getById("winyh"), { height:500, allowTaint: true, useCORS: true, }).then ...

  6. php代码规范->如何写出规范且易于理解的项目代码-ZX版

    2019年5月17日10:50:12 前序: 目前是想到哪写到哪,后面有时间在整理成具体文章 很多时候,PHP代码风格过于自由,导致一个项目有N多种写法风格,有些人为了自己认为的技术"高&q ...

  7. 如何理解JavaScript的原型和原型链

    在现在的业务开发中,应该很少人在写原生JavaScript了,大家都一股脑地扑在各个框架上.本来,这些框架对于业务和开发者来说是一种福音,减少了各种各样的开发痛点,但是带来的负面问题就是对于开发者来说 ...

  8. sql调优方法实用性总结(一)

    1.选择最有效率的表名顺序(只在基于规则的优化器): Oracle的解析器按照从右向左的顺序处理FROM子句中的表名,FROM子句中写在最后的表将被最先处理(基础表先处理,driving table) ...

  9. Spring boot + mybatis + oracle代码生成器

    在pom文件中加入依赖: <build> <plugins> <!--逆向工程--> <plugin> <groupId>org.mybat ...

  10. 大数据之路【第十四篇】:数据挖掘--推荐算法(Mahout工具)

    数据挖掘---推荐算法(Mahout工具) 一.简介 Apache顶级项目(2010.4) Hadoop上的开源机器学习库 可伸缩扩展的 Java库 推荐引擎(协同过滤).聚类和分类 二.机器学习介绍 ...