树莓派安装opencv3及其扩展库
https://www.cnblogs.com/Pyrokine/p/8921285.html 目标
编译针对python的opencv以及扩展库 环境
树莓派4和3B+都可以
python3.7.3 python2.7共存
opencv3.4.8
--------------------------------------------------------------------------------------------------------------------------------
安装过程准备1 关闭休眠(可以不管)准备2 不要切换安装源(可以不切换)
为了避免安装过程中树莓派休眠,先关闭他自动休眠
https://www.cnblogs.com/kekeoutlook/p/11066283.html
一般为了安装提速会切换清华或者阿里的源,树莓派3B+好像没这个问题,但是4代切换后,每次安装东西都要提示安装软件依赖包问题不能安装。
因为4代本来就是最新的系统,切换了源里面的很多软件包都是最新的,但是opencv需要一些旧有的版本,就导致了已经安装的最新的版本无法被低级别的取代,进一步阻止你安装。
我是在重新刷了系统试出来的。
虽然有aptitude代替apt-get来安装软件,它会自动按照需求降低版本安装,但是在上述问题下你连aptitude都安装不了。
当然你可以尝试不切换源先把aptitude安装了,然后在切换源,之后用aptitude代替apt-get来安装东西。我没测试。
准备3 扩大交换分区(必须)
编译到81%的时候卡死了,报错:解决: g++: internal compiler error: Killed (program cc1plus),内存不够
增加交换分区
https://www.cnblogs.com/kekeoutlook/p/11856057.html
网上说交换分区会造成内存卡损伤加快,如果使用完没有大的使用程序,最好重新调整回去,原来是 100Mb
0 扩大TF卡的空间
如果不做这步操作,后面会出问题,比如卡死
输入(命令行)
sudo raspi-config
然后选择" Advanced Options "然后选择" Expand Filesystem "然后重启树莓派
1 下载opencv以及contrib源码包
1-1 下载opencv
https://github.com/Itseez/opencv/

https://github.com/opencv/opencv/releases

https://github.com/opencv/opencv/releases/tag/3.4.8

1-2 下载扩展库
同样的操作下载扩展库
https://github.com/opencv/opencv_contrib
https://github.com/opencv/opencv_contrib/releases

https://github.com/opencv/opencv_contrib/releases/tag/3.4.8

我从自己的电脑下载好,拷贝到树莓派,解压。

2 更新apt(命令行)
sudo apt-get update
sudo apt-get upgrade
3 安装预先依赖库
开始为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
4cmake配置
在opencv3.8.4创建 build文件,命令行cd进入build文件夹下面

执行命令
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/Work/1Sortware/opencv38_python37/opencv_contrib-3.4.8/modules -D BUILD_EXAMPLES=ON -D WITH_LIBV4L=ON PYTHON3_EXECUTABLE=/usr/bin/python3.7 PYTHON_INCLUDE_DIR=/usr/include/python3.7 PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.5m.so PYTHON3_NUMPY_INCLUDE_DIRS=/home/pi/.local/lib/python3.7/site-packages/numpy/core/include ..
- 1修改自己的opencv版本
- 2修改opencv_contrib对应的路径,这里用的是
OPENCV_EXTRA_MODULES_PATH=/home/pi/Work/1Sortware/opencv38_python37/opencv_contrib-3.4.8/modules
- 3修改python版本,这里用的是 python3.7
配置成功


5编译和安装
在build文件夹下,开始编译
sudo make
漫长的等待,树莓派3B+需要6-7个小时 树莓派4正在编译未知时间,肯定要比3B+快。
早上起来卡在81%报错,内存不够,开启2G的交换空间,又可以继续编译了(刚开始还是卡,但是过了81%就快了)。

编译成功

安装
sudo make install
成功

两个也可以同时执行
make && sudo make install
等待结束
千辛万苦终于好了!!!
来试试目标识别速度提升。
树莓派安装opencv3及其扩展库的更多相关文章
- 树莓派安装QT(全部库包括)
在网上现有的资料中大部分只有前两个命令,少量有三个命令,因此写下该博客 在树莓派上安装QT5的全部库,包括QtQuick.QtMultimedia库. sudo apt-get install qt5 ...
- 树莓派安装pip3以及扩展包的方法
树莓派上有的时候需要安装一些python额外的包,但上面没有安装pip3,因此需要动手去安装pip3,之后用来安装拓展包. 1.首先安装setuptools cd /usr/local/src/ su ...
- 1.4.1 安装Python扩展库
Python之所以得到各行业领域工程师.策划师以及管理人员的青睐,与涉及各行业各领域开发的扩展库也有很大关系,不仅数量众多.功能强大,关键是用起来很方便.虽然Python标准库已经拥有了非常强大的功能 ...
- Ubuntu14.10:Install Apache,PHP,Mysql以及扩展库
step 1: Apache sudo apt-get install apache2 After have apache2 installed, go to localhost by browser ...
- 树莓派 Learning 002 装机后的必要操作 --- 05 给树莓派搭建“x86 + pi”环境 -- 安装**32位运行库** -- 解决`E:未发现软件包 xxx` 问题
树莓派 装机后的必要操作 - 给树莓派搭建"x86 + pi"环境 – 安装32位运行库 – 解决E:未发现软件包 xxx 问题 我的树莓派型号:Raspberry Pi 2 Mo ...
- 安装php扩展库
无法加载'pdo_mysql' ,因为需要pdo这个module.PHP Warning: Cannot load module 'pdo_mysql' because required module ...
- window下python 扩展库安装 使用第三方镜像源
0.前言 由于python的官方镜像位于国外,若使用pip或者easy_install安装第三方插件时或许会被限制,甚至连easy_install或pip也无法安装,例如在windows环境下 ...
- 不重新编译PHP文件的情况下php GD库扩展库的编译安装(centos)
gd-2.0.33.tar.gz http://www.boutell.com/gd/ jpegsrc.v6b.tar.gz http://www.ijg.org/ libpng-1.2.7.tar. ...
- php下安装动态扩展库的相关事项
php下安装动态扩展库的相关事项 我下载的Apache版本为2.4,PHP版本为7.0. 将Apache与PHP集成配置好后(PHP安装目录为:G:\computer\web\php7,apache安 ...
随机推荐
- Paper | MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
目录 1. 故事 2. MobileNet 2.1 深度可分离卷积 2.2 网络结构 2.3 引入两个超参数 3. 实验 本文提出了一种轻量级结构MobileNets.其基础是深度可分离卷积操作. M ...
- Python apply函数
Python apply函数 1.介绍 apply函数是pandas里面所有函数中自由度最高的函数.该函数如下: DataFrame.apply(func, axis=0, broadcast=Fal ...
- python运维开发常用模块(6)发送电子邮件模块smtplib
1.模块常用方法 SMTP类定义:smtplib.SMTP([host[,port[,local_hostname[, timeout]]]]),作为SMTP的构造函数,功能是与smtp服务器建立连接 ...
- Vue.js 源码分析(二十) 指令篇 v-once指令详解
数据绑定最常见的形式就是使用“Mustache”语法 (双大括号) 的文本插值,例如:<p>Message: {{ msg }}</p>以后每当msg属性发生了改变,插值处的内 ...
- Mybatis传递多个参数的几种方式
顺序传参法 public User selectUser(String name, int deptId); <select id="selectUser" resultMa ...
- docker安装kafka
文本摘自此文章 .kafka需要zookeeper管理,所以需要先安装zookeeper. 下载zookeeper镜像 $ docker pull wurstmeister/zookeeper .启动 ...
- 使用AspectCore实现AOP模式的Redis缓存
这次的目标是实现通过标注Attribute实现缓存的功能,精简代码,减少缓存的代码侵入业务代码. 缓存内容即为Service查询汇总的内容,不做其他高大上的功能,提升短时间多次查询的响应速度,适当减轻 ...
- 阿里Jvm必问面试题及答案
什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行的字节码文件. Java被设计 ...
- wpf 代码设置图片路径(后台和xamll)
项目中经常使用背景图片,当一个小组共通开发时,路径的选择应该是在项目运行的固定文件夹下 此时,可用代码实现:pack://SiteOfOrigin:,,,/Images/Icons/HomePageB ...
- pipenv 管理虚拟环境
pipenv --python 3.6 创建虚拟环境 vim Pipfile —> 修改源 为阿里云镜像 https://mirrors.aliyun.com/pypi/simple [pack ...
