树莓派安装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安 ...
随机推荐
- (三十三)golang--面向对象之继承
继承可以解决代码复用: 实现:只需要在结构体中嵌套一个匿名结构体: 结构体可以使用匿名结构体中所有字段核方法:无论是大写还是小写: 可以简化访问匿名结构体中的属性和方法: 当该结构体和匿名结构体有相同 ...
- IM开发者的零基础通信技术入门(三):国人通信方式的百年变迁
[来源申明]本文原文来自:微信公众号“鲜枣课堂”,官方网站:xzclass.com,原题为:<中国通信的百年沉浮>,本文引用时已征得原作者同意.为了更好的内容呈现,即时通讯网在收录时内容有 ...
- python 中in 的 用法
1. 作用为 成员运算符 在字符串内操作,如果字符串包含相关字符 则返回True,如果不包含则返回False 当然处理不单单是只有单个字符,多个连续的字符也是可以处理的 # 单个字符 a= ...
- 安利一波ubuntu18.04作为开发环境,极度舒适
乌班图18更新也一年多了吧,除了最开始的尝鲜,最近才真正使用起来.用完的感受是完爆Windows,比起OSX也不差. 开发环境需要的东西: git shell idea chrome firefox ...
- jre、jdk、jvm之间的关系
很多Java的程序员在写了很多代码之后,你问他JRE和JDK是是什么关系,JVM又是什么东西,他是不知道的. JVM(Java Virtual Machine) Java 虚拟机.它只认识 xxx.c ...
- MySQL5.6升级到5.7详细教程
前言:最近看了下系统的数据库是5.6的,想着升级到5.7,特此记录 一.官网下载MySQL5.7rpm包(4个) 进入MySQL community download页面,默认是MySQL最新版8.0 ...
- 【机器学习笔记】Python机器学习基本语法
本来算法没有那么复杂,但如果因为语法而攻不下就很耽误时间.于是就整理一下,搞python机器学习上都需要些什么基本语法,够用就行,可能会持续更新. Python四大类型 元组tuple,目前还没有感受 ...
- vertx-jersey
允许在vert.x中创建JAX-RS Jersey资源. 入门 将vertx-jersey依赖项添加到您的项目中 <dependency> <groupId>com.eng ...
- maven工程运行前准备
近一年来,我学习了很多java及数据库前沿技术,如Spring框架,SpringMVC框架,Mybatis框架,Redis,Dubbo,Maven等. 以及一些Linux命令和在Linux环境下的工程 ...
- Scrapy-Splash简介及验证码的处理(一)
目录 一:Splash简介与准备 二:验证码的识别(1) 在之前的博客中,我们学习了selenium的用法,它是一个动态抓取页面的方法,但是,动态抓取页面还有其他的方法,这里介绍Splash方法, ...