zoukankan      html  css  js  c++  java
  • 树莓派安装opencv3及其扩展库

    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
    

      

    等待结束

     千辛万苦终于好了!!!

    来试试目标识别速度提升。

  • 相关阅读:
    对Java课程的感想
    OO第二阶段总结
    OO第一作业周期(前四周)总结
    实验7 流类库和输入输出
    实验6 类的继承和多态
    实验5 类和对象3
    实验4 类与对象2
    实验3 类和对象
    实验2
    实验1
  • 原文地址:https://www.cnblogs.com/kekeoutlook/p/11854501.html
Copyright © 2011-2022 走看看