树莓派4B安装OpenCV教程
树莓派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教程相关推荐
- 树莓派4B安装OPENCV遇到ffmpeg库版本太高的问题
较新的安装教程:树莓派4B安装OpenCV教程_luoi_han的博客-CSDN博客_树莓派4b安装opencv 这几天安装opencv,其他的问题好说,但是遇到了这个问题: /home/pi/Dow ...
- OpenCV加mySQL树莓派_树莓派3B/3B+和4B安装OpenCV教程 (详细教程)
安装前准备 在树莓派上拓展文件系统 如果你使用的树莓派为新装的系统,那么第一件事情就是扩展文件系统,以包括microSD卡上的所有空间. 具体步骤如下: 1.在树莓派终端(或者SSH)上输入: 1 $ ...
- 2020树莓派4B安装teamviewer教程
网上看了许许多多零碎的教程,这里讲解最为有效的一条 (1)确定你的apt-get的镜像源正确 建议采用清华大学镜像源 清华大学镜像站官网:https://mirror.tuna.tsinghua.ed ...
- MacOS下无屏幕通过共享WiFi的方式为树莓派4B安装64-bit系统
目录 教程参考说明 工具 步骤 下载系统 烧录系统 连接网络 启用桌面VNC 教程参考说明: 本教程为使用Mac笔记本,在MacOS系统下,在无屏幕下条件下,安装 RasPberry Pi OS 64 ...
- 子豪兄教你在树莓派上安装OpenCV
子豪兄教你在树莓派上安装OpenCV 子豪兄教你在树莓派上安装OpenCV 安装前提 1.配置好树莓派的Raspbian操作系统 2.切换到国内的apt-get下载源和pip下载源 3.如果你有树莓派 ...
- 转子豪兄 树莓派上安装OpenCV
最近在树莓派上安装OpenCV的时候遇到很多问题,参考了很多安装教程,最后发现这个是非常不错的一篇,但是发现子豪兄没有在CSDN发这篇文章,我在这里转载一下. https://zhuanlan.zhi ...
- 树莓派4B安装Openwrt软路由并用作家庭网络网关设备
树莓派4B安装Openwrt软路由并用作家庭网络网关设备 缘由 家里需要联网设备太多,光猫性能不够,家里小米AX3600不想来刷机,然后就想到了被尘封的树莓派4B,经过一段时间的研究与折腾,最终完成了 ...
- 超简单教你在树莓派上安装opencv(二)
超简单教你在树莓派上安装opencv(二) 前言 一.如何基于python3.9.2安装OpenCv? 1.1 查看自己系统位数及Python版本,跟对教程 1.2 换源 1.3 更新 1.4 安装依 ...
- 树莓派python3.6.8安装opencv_子豪兄教你在树莓派上安装OpenCV
子豪兄教你在树莓派上安装OpenCV 注意,如要换源,只能按本博客换源方法其他会出错 本文介绍了如何在树莓派上安装分别运行在Python2和Python3的OpenCV. 运行在Python2上的Op ...
最新文章
- tidb mysql hbase_HBase/TiDB都在用的数据结构:LSM Tree,不得了解一下?
- Thinkphp 源码分析
- 评论与回复php代码,php – 显示评论和回复?
- 结构指针的坑之(定义结构体指针时并没有分配存储空间,所以要用malloc()申请空间)
- 判断回文链表(剑指offer.027)
- 大数据在互联网金融行业中的应用
- 多线程:happens-before 先行发生原则
- binlog以及Canel
- wincc历史数据库_WinCC系统的基本功能介绍——自动化工程师必备
- 案例:演示out对象的使用及原理分析
- LeetCode -- Sort List
- opencv之对图像中的点做几何变换
- wincc怎么做数据库_wincc7.4 数据库的建立与查询
- 推挽变换器matlab仿真,双驱动推挽DC-DC变换器方案分享之设计原理简析
- 欧奈尔RPS曲线的编制方法及常见问题解答
- 大数据在高校的应用场景_大数据在高校中的应用研究
- 电脑崩溃?黑客最爱邮件入侵方式,在双十一也要保护好网络安全!
- 2019计算机电源海关征税,回国华人注意!2019中国海关严打:这些东西千万别带了!...
- SY6982E芯片了解
- 【Java】基本类型之short(四)