树莓派4B安装OpenCV

  • 树莓派安装与远程登陆
  • Python版本切换
  • 下载、编译和安装OpenCV
    • 1. 更换源
    • 2. 存储空间的操作
    • 3. OpenCV相关库的下载
    • 4. 下载OpenCV包及其编译
      • 4.1 OpenCV version of 4.4.0-dev及其缺失文件
      • 4.2 复制文件到树莓派
      • 4.3 设置编译参数
      • 4.4 增加swap空间
      • 4.5 编译
        • 4.5.1 错误及其解决方案
    • 4.6 安装OpenCV
    • 5. 不想踩坑看这里
    • 6. 参考博客

树莓派安装与远程登陆

树莓派安装与远程登陆,相关的博客有很多,此处不再赘述。

Python版本切换

树莓派自带Python有两个版本,Python2.7 和 Python3.7, 越来越多的人上手就用Py3了。所以可以把Py2卸载掉,以节约SD卡空间。当然,也可不卸载,无非就是启用Python的时候,多敲一个‘3’而已。

Python版本切换
该博客中关于下载和安装TensorFlow2.0的内容可忽略掉。

下载、编译和安装OpenCV

1. 更换源

有些教程里提到要更换软件源列表,但是我实际更换后,发现sudo apt-get update和upgrade的速度快了,但是下载其它文件的时候却经常报错,找不到文件。所以我经过几次折腾,还是决定不更换软件源了。

2. 存储空间的操作

使用16G及其以上的卡,最好是class10以上,然后扩大文件系统。因为,用SD卡安装完系统后一大部分空间实际是未被分配的。

使用命令`sudo raspi-config

选择Advanced Options→Expand Filesystem Ensures that all of the SD card storage is available to the OS.

随后重启树莓派,重启命令:sudo reboot

3. OpenCV相关库的下载

之所以把代码分行写,是因为我发现一次性运行如下全部代码,容易报错,所以,我后来就是逐行复制粘贴并运行的。一切顺利。

sudo pip3 install numpy
sudo apt-get install build-essential git cmake pkg-config
sudo apt-get install libjpeg8-dev
sudo apt-get install libtiff5-dev
sudo apt-get install libjasper-dev -ysudo apt-get install libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install libatlas-base-dev gfortran

4. 下载OpenCV包及其编译

4.1 OpenCV version of 4.4.0-dev及其缺失文件

链接:https://pan.baidu.com/s/16-9FtYL8uahXRvbN_We_kg
提取码:rwwm
里面有两个压缩包,opencv-master.zip和opencv_contrib-master.zip。另外一个Lost_files里放置的是树莓派安装OpenCV时缺失的以“i”结尾的文件。

4.2 复制文件到树莓派

在树莓派 /home/pi下新建文件夹opencv,将下载的文件复制进去。
解压文件:

cd ~/opencv
unzip opencv_contrib-master.zip
unzip opencv-master.zip

解压完毕后,可以吧压缩包删掉,以节省空间。
接下来把Lost_files中的所有文件复制到/home/pi/opencv/opencv_contrib-master/modules/xfeatures2d/src/路径下。这是为了避免在编译过程中出现如下错误:

这个错误的主要原因是缺少了如下文件:这些文件放在刚刚下载的Lost_files文件夹中。```python
boostdesc_bgm.i
boostdesc_bgm_bi.i
boostdesc_bgm_hd.i
boostdesc_lbgm.i
boostdesc_binboost_064.i
boostdesc_binboost_128.i
boostdesc_binboost_256.i
vgg_generated_120.i
vgg_generated_64.i
vgg_generated_80.i
vgg_generated_48.i

4.3 设置编译参数

cd ~/opencv/opencv-master
mkdir build
cd build

Cmake经过配置,可在~/opencv/opencv-master/build文件夹下生成Build files.代码如下:

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=~/opencv/opencv_contrib-master/modules \  # 这是我的opencv_contrib-master的存放路径,如果你改变了存储位置,这个要跟着改变。-D ENABLE_PRECOMPILED_HEADERS=OFF \-D BUILD_EXAMPLES=ON ..  # 这两个点很重要,不是多余的

配置成功之后,显示类似如下界面,最后一行是重点。

4.4 增加swap空间

将swap大小从100MB增加到1024MB,可以方便OpenCV使用Pi的4个核进行编译。

sudo nano /etc/dphys-swapfile

找到CONF_SWAPSIZE=100,将100改为1024。按ctrl+O后,回车保存,ctrl+x退出。使用如下命令重启:

sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start

4.5 编译

输入如下指令:

make

如果不报错,就一直运行下去,知道100%编译成功。如果出错了,就参照如下4.5.1的解决方案,处理以后,重复执行make命令。

4.5.1 错误及其解决方案

缺失以‘i’结尾的文件这个问题在4.2节已经解决掉了。
还有一个问题,在解决时我没有截图,这里采用别人的图,但是方法都是类似的,我尽量解释清楚一些。

上图红色框中显示在运行 …/opencv_contrib/modules/xfeatures2d/test/test_features2d.cpp时,features2d/test/test_detectors_regression.impl.hpp文件或路径不存在。
**如果发生在我这个项目上报的错误应该是:
/home/pi/opencv_contrib-master/modules/xfeatures2d/test/test_features2d.cpp时,features2d/test/test_detectors_regression.impl.hpp文件或路径不存在。
**

解决办法如下:
将/home/pi/opencv-master/modules/xfeatures2d/test/test_detectors_regression.impl.hpp文件复制到/home/pi/opencv_contrib-master/modules/xfeatures2d/test/目录下,如下图所示:

并修改/home/pi/opencv_contrib-master/modules/xfeatures2d/test/test_features2d.cpp中的头文件(即上图中绿色框中的文件),将#include features2d/test/test_detectors_regression.impl.hpp改为#include test_detectors_regression.impl.hpp,如下图所示:

把缺失的文件复制过来后,是否可以不修改这个头文件的路径呢?如果诸位有答案了,欢迎留言。我这里改了也没问题,可以成功编译

其它类似的错误:

解决方案依然是类似的,将/home/pi/opencv-master/modules/xfeatures2d/test/test_detectors_invariance.impl.hpp文件复制到/home/pi/opencv_contrib-master/modules/xfeatures2d/test/目录下。并修改/home/pi/opencv_contrib-master/modules/xfeatures2d/test/test_rotation_and_scale_invariance.cpp中的头文件(是否可以不改,坐等大家回复

4.6 安装OpenCV

经过几个坑之后,终于编译到100%,成功啦!此处有鲜花和掌声,耗时最长且最麻烦的一步已经趟过去了。
执行如下安装指令:

sudo make install

成功以后,再测试一下是否安装成功:

Python3
import cv2

如果什么提示都没有,那么恭喜你!Opencv 4.4.–dev已安装成功。然后按照本文4.4的方法,将交换空间从1024改回100。

5. 不想踩坑看这里

这儿算是个福利吧,我把我再编译过程中踩坑后的文件,放到百度网盘上,诸位可以跳过本文4.1, 4.2和4.5.1中的步骤,直接编译和安装
链接:https://pan.baidu.com/s/1uHwn5VbdXWVbb9F3zE_h3A
提取码:cgly
下载后放在 /home/pi目录下,然后按照本文4.3,4.4,和4.5和4.6即可。

6. 参考博客

成功安装OpenCV,离不开以下几个博客的支持,列举如下
教程1
教程2
教程3

树莓派4B安装OpenCV教程相关推荐

  1. 树莓派4B安装OPENCV遇到ffmpeg库版本太高的问题

    较新的安装教程:树莓派4B安装OpenCV教程_luoi_han的博客-CSDN博客_树莓派4b安装opencv 这几天安装opencv,其他的问题好说,但是遇到了这个问题: /home/pi/Dow ...

  2. OpenCV加mySQL树莓派_树莓派3B/3B+和4B安装OpenCV教程 (详细教程)

    安装前准备 在树莓派上拓展文件系统 如果你使用的树莓派为新装的系统,那么第一件事情就是扩展文件系统,以包括microSD卡上的所有空间. 具体步骤如下: 1.在树莓派终端(或者SSH)上输入: 1 $ ...

  3. 2020树莓派4B安装teamviewer教程

    网上看了许许多多零碎的教程,这里讲解最为有效的一条 (1)确定你的apt-get的镜像源正确 建议采用清华大学镜像源 清华大学镜像站官网:https://mirror.tuna.tsinghua.ed ...

  4. MacOS下无屏幕通过共享WiFi的方式为树莓派4B安装64-bit系统

    目录 教程参考说明 工具 步骤 下载系统 烧录系统 连接网络 启用桌面VNC 教程参考说明: 本教程为使用Mac笔记本,在MacOS系统下,在无屏幕下条件下,安装 RasPberry Pi OS 64 ...

  5. 子豪兄教你在树莓派上安装OpenCV

    子豪兄教你在树莓派上安装OpenCV 子豪兄教你在树莓派上安装OpenCV 安装前提 1.配置好树莓派的Raspbian操作系统 2.切换到国内的apt-get下载源和pip下载源 3.如果你有树莓派 ...

  6. 转子豪兄 树莓派上安装OpenCV

    最近在树莓派上安装OpenCV的时候遇到很多问题,参考了很多安装教程,最后发现这个是非常不错的一篇,但是发现子豪兄没有在CSDN发这篇文章,我在这里转载一下. https://zhuanlan.zhi ...

  7. 树莓派4B安装Openwrt软路由并用作家庭网络网关设备

    树莓派4B安装Openwrt软路由并用作家庭网络网关设备 缘由 家里需要联网设备太多,光猫性能不够,家里小米AX3600不想来刷机,然后就想到了被尘封的树莓派4B,经过一段时间的研究与折腾,最终完成了 ...

  8. 超简单教你在树莓派上安装opencv(二)

    超简单教你在树莓派上安装opencv(二) 前言 一.如何基于python3.9.2安装OpenCv? 1.1 查看自己系统位数及Python版本,跟对教程 1.2 换源 1.3 更新 1.4 安装依 ...

  9. 树莓派python3.6.8安装opencv_子豪兄教你在树莓派上安装OpenCV

    子豪兄教你在树莓派上安装OpenCV 注意,如要换源,只能按本博客换源方法其他会出错 本文介绍了如何在树莓派上安装分别运行在Python2和Python3的OpenCV. 运行在Python2上的Op ...

最新文章

  1. tidb mysql hbase_HBase/TiDB都在用的数据结构:LSM Tree,不得了解一下?
  2. Thinkphp 源码分析
  3. 评论与回复php代码,php – 显示评论和回复?
  4. 结构指针的坑之(定义结构体指针时并没有分配存储空间,所以要用malloc()申请空间)
  5. 判断回文链表(剑指offer.027)
  6. 大数据在互联网金融行业中的应用
  7. 多线程:happens-before 先行发生原则
  8. binlog以及Canel
  9. wincc历史数据库_WinCC系统的基本功能介绍——自动化工程师必备
  10. 案例:演示out对象的使用及原理分析
  11. LeetCode -- Sort List
  12. opencv之对图像中的点做几何变换
  13. wincc怎么做数据库_wincc7.4 数据库的建立与查询
  14. 推挽变换器matlab仿真,双驱动推挽DC-DC变换器方案分享之设计原理简析
  15. 欧奈尔RPS曲线的编制方法及常见问题解答
  16. 大数据在高校的应用场景_大数据在高校中的应用研究
  17. 电脑崩溃?黑客最爱邮件入侵方式,在双十一也要保护好网络安全!
  18. 2019计算机电源海关征税,回国华人注意!2019中国海关严打:这些东西千万别带了!...
  19. SY6982E芯片了解
  20. 【Java】基本类型之short(四)

热门文章

  1. 如何打开tensorboard
  2. 《下班后开始新的一天》阅读笔记
  3. sap项目部署到服务器,本地项目部署到云服务器
  4. android hook 第三方app_不需要Root即可Hook别人APP的方法
  5. stm32miniRTC实时时钟——HAL库
  6. Java学习博客转载
  7. 国民技术(30077)十周年:不为外人知的数据
  8. STM32C8T6小板下载问题
  9. ESP8266物联网开发小板开箱
  10. Eclipse显示空白符号的具体设置