https://www.cnblogs.com/Pyrokine/p/8921285.html

目标
编译针对python的opencv以及扩展库 环境
树莓派4和3B+都可以
python3.7.3 python2.7共存
opencv3.4.8
--------------------------------------------------------------------------------------------------------------------------------
安装过程
准备1 关闭休眠(可以不管)
  
为了避免安装过程中树莓派休眠,先关闭他自动休眠
https://www.cnblogs.com/kekeoutlook/p/11066283.html
准备2 不要切换安装源(可以不切换)
一般为了安装提速会切换清华或者阿里的源,树莓派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及其扩展库的更多相关文章

  1. 树莓派安装QT(全部库包括)

    在网上现有的资料中大部分只有前两个命令,少量有三个命令,因此写下该博客 在树莓派上安装QT5的全部库,包括QtQuick.QtMultimedia库. sudo apt-get install qt5 ...

  2. 树莓派安装pip3以及扩展包的方法

    树莓派上有的时候需要安装一些python额外的包,但上面没有安装pip3,因此需要动手去安装pip3,之后用来安装拓展包. 1.首先安装setuptools cd /usr/local/src/ su ...

  3. 1.4.1 安装Python扩展库

    Python之所以得到各行业领域工程师.策划师以及管理人员的青睐,与涉及各行业各领域开发的扩展库也有很大关系,不仅数量众多.功能强大,关键是用起来很方便.虽然Python标准库已经拥有了非常强大的功能 ...

  4. Ubuntu14.10:Install Apache,PHP,Mysql以及扩展库

    step 1: Apache sudo apt-get install apache2 After have apache2 installed, go to localhost by browser ...

  5. 树莓派 Learning 002 装机后的必要操作 --- 05 给树莓派搭建“x86 + pi”环境 -- 安装**32位运行库** -- 解决`E:未发现软件包 xxx` 问题

    树莓派 装机后的必要操作 - 给树莓派搭建"x86 + pi"环境 – 安装32位运行库 – 解决E:未发现软件包 xxx 问题 我的树莓派型号:Raspberry Pi 2 Mo ...

  6. 安装php扩展库

    无法加载'pdo_mysql' ,因为需要pdo这个module.PHP Warning: Cannot load module 'pdo_mysql' because required module ...

  7. window下python 扩展库安装 使用第三方镜像源

    0.前言     由于python的官方镜像位于国外,若使用pip或者easy_install安装第三方插件时或许会被限制,甚至连easy_install或pip也无法安装,例如在windows环境下 ...

  8. 不重新编译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. ...

  9. php下安装动态扩展库的相关事项

    php下安装动态扩展库的相关事项 我下载的Apache版本为2.4,PHP版本为7.0. 将Apache与PHP集成配置好后(PHP安装目录为:G:\computer\web\php7,apache安 ...

随机推荐

  1. nmap中文手册

    译注该Nmap参考指南中文版由Fei Yang <fyang1024@gmail.com>和Lei Li<lilei_721@6611.org> 从英文版本翻译而来. 我们希望 ...

  2. 在Ubuntu18.04.2LTS上安装搜狗输入法

    在Ubuntu18.04.2LTS上安装搜狗输入法 一.前言 最近项目使用到了Linux系统,因此就安装了Ubuntu18.04.2这个最新的LTS的OS.整体的使用效果是不敢恭维的,特别是使用虚拟机 ...

  3. css3 rem手机自适应框架

    css3 rem手机自适应框架 rem是按照html的字体大小来 所以 不同宽度浏览器 htmlfont-size不一样 就可以做到自适应了 此方法比百分比方便<pre><!DOCT ...

  4. C++:Overload

    重载 函数签名是指函数的参数个数,参数类型以及参数的顺序.重载的定义是:在同一作用域内函数签名不同但函数名相同的函数互为重载. // 以下几个函数互为重载 void print(); void pri ...

  5. centos ftp服务器搭建 vsftpd 匿名访问配置方法 ftp 550 Failed to open file 错误处理

    vsftpd是linux下常用的ftp服务软件,配置起来其实不复杂,只是网上很多文章,配置后都无法成功.我使用它是用于局域网内部分享文件的,所以使用匿名的方式. ftp本身密码是明文传输的,如果需要安 ...

  6. Server2016 IIS安装配置

  7. Python基础18

    “为什么有列表,还要元组?” 1. 元组可看成是简单的对象组合,而列表是随时间改变的数据集合. 2. 元组的不可变特性提供了某种完整性,确保元组不会被另一个引用来修改.类似于其它语言中的常数声明.

  8. 一款好用的SSH工具“FinalShell”

    FinalShell是一体化的的服务器,网络管理软件,不仅是ssh客户端,还是功能强大的开发,运维工具,充分满足开发,运维需求. 特色功能:免费海外服务器远程桌面加速,ssh加速,双边tcp加速,内网 ...

  9. 微信小程序入门小结

  10. vue cli 3.0快速创建项目

    本地安装vue-cli 前置条件 更新npm到最新版本 命令行运行: npm install -g npmnpm就自动为我们更新到最新版本 淘宝npm镜像使用方法 npm config set reg ...