前言:本文为手把手教学树莓派4B的OpenCV安装与简单应用(真速通版本),树莓派4B最为目前最新款的树莓派家族一员深受创客和开发者喜爱。树莓派4B作为一款搭载 Cortex-A72 系列芯片的板载电脑,其不仅可以作为简单的 MCU 进行控制方面开发,更可以凭借其高计算性能进行深度学习的图像处理。说到深度学习和图像处理自然离开不了 OpenCV 这个工具。作者将用本篇博客帮助大家真正实现速通树莓派4B的OpenCV安装,并进行简单的应用教学。(镜像与附件安装包文见篇章末尾!)
硬件实物图:
效果图:
一、树莓派4B概述
树莓派(Raspberry Pi)是一款基于ARM的微型电脑主板,旨为学生编程教育而设计,其系统基于Linux,由注册于英国的慈善组织 “Raspberry Pi 基金会”开发,Eben.Upton为项目带头人。别看其外表“娇小” ,内“心”去很强大,上网、看视频、听音乐等功能都有,可谓是“麻雀虽小,五脏俱全”。自问世以来,受众多计算机发烧友和创客的追捧。
目前,市场上有多种型号Raspberry Pi,具体如下表 1 树莓派参数对比:
树莓派主流操作系统(OS):(1)、NOOBS;(2)、Raspbian;(3)、第三方系统;
适合树莓派的发行版版本很多,足以满足不同人群的需求。 官方推荐的有 NOOBS 和 Raspbian, Raspbian(单纯的 Arm 版的 Linux 系统,基于 Debian) 是当前实用最广泛的操作系统。第三方 OS 都有其自身风格,如果需求只是某一方面的功能,那么选择第三方也是可以的。
树莓派官网镜像地址:Raspberry Pi OS – Raspberry Pi
补充说明:树莓派官网下载的镜像建议为带桌面版本的,这样方便后续VNC查看桌面进行设置。如果想走OpenCV速通版本,建议使用作者博客篇末的镜像资源!
二、OpenCV
2.1 OpenCV概述
OpenCV 是 Intel® 开源计算机视觉库。它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV 拥有包括 300 多个 C 函数的跨平台的中、高层 API 。它不依赖于其它的外部库——尽管也可以使用某些外部库。OpenCV 对非商业应用和商业应用都是免费(FREE)的。
它有以下特点:
(1) 开放的C/C++源码
(2) 基于Intel处理器指令集开发的优化代码
(3) 统一的结构和功能定义
(4) 强大的图像和矩阵运算能力
(5) 方便灵活的用户接口
(6) 同时支持MS-WINDOWS、LINUX平台
作为一个基本的计算机视觉、图像处理和模式识别的开源项目,OpenCV 可以直接应用于很多领域,作为第二次开发的理想工具。特别是新版的 OpenCV 中提供了大量的 Python 接口,极大的简化了 OpenCV 函数的调用,使得使用者可以更为方便的利用 OpenCV 实现各种功能。
opencv官网:OpenCV - Open Computer Vision Library
2.2 OpenCV安装
作者说明:树莓派4B安装OpenCV极其需要版本对应,比如python版本与OpenCV包的对应,依赖库的对应,numpy的对应等。如果,读者朋友初次尝安装OpenCV建议直接使用作者的镜像和依赖包!
作者默认读者朋友不管是通过屏幕还是VNC等操作成功连接树莓派终端,如果这步没有实现的话,建议去搜索一下教程。
作者通过SSH协议和MobaXterm软件实现连接树莓派4B终端:
VNC远程挂载树莓派桌面(作者手机热点卡,所以还是接屏幕了):
1、安装好树莓派官方镜像:raspios,查看python3和python版本;
作者提供的镜像python3的版本是python3.7.3(老旧的稳定版本),强烈建议别用python3.9版本的镜像,配套的opencv库依赖会出现一堆问题(全都是版本过高或者彼此不兼容)
2、下载 opencv-python 和 opencv-contrib-python 库;
opencv-python地址:piwheels - opencv-python
opencv-contrib-python地址:piwheels - opencv-contrib-python
直接使用指令下载这两个库文件巨慢而且很容易失败,所以作者建议在PC端下载好whl包之后通过XobaXterm软件传输给树莓派4B,然后通过指令直接进行安装。
选择的whl包也需要和自己镜像系统的python版本对应,cp37对应python3.7版本,cp39则对应python3.9版本,armv7l则是通过指令:uname -a进行查询!
作者的速通版本是直接使用作者提供好的whl和镜像直接安装,具体如下:
将作者提供的whl包直接全选后拉中导入树莓派4B的Download中:
作者提供的whl包和镜像是完美对应的,所以安装起来会畅通无阻,不会报错。
使用如下代码进行安装whl包:
#首先cd到Download文件夹吓
cd Download
#分别使用如下2指令安装whl包
pip3 install opencv-py(按Tab键自动补全)
pip3 install opencv-con(按Tab键自动补全)
之后分别使用如下指令进行安装依赖的numpy和
sudo apt-get install python3-h5py
pip3 install numpy (按Tab键自动补全)
opencv依赖的其他库安装:
sudo apt-get install libhdf5-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libjasper-dev
sudo apt-get install libqt4-test
sudo apt-get install libqtgui4
sudo apt-get update
安装上述步骤走完基本就已经成功安装OpenCV了,搭配作者的镜像和whl包基本不好出任何问题,接下来我们试试启动OpenCV!
python3
import cv2 # 检查导入成功
三、OpenCV的简单应用
3.1 树莓派4B摄像头使能
部分树莓派4B的镜像默认是不使能摄像头Camera的,所以,OpenCV调用摄像头可能会出现警告进而失败。所以,这里我们需要先使能Camera。
打开树莓派4B的终端(Crtl+Alt+t)之后输入一下打开配置指令:
sudo raspi-config
按照以下步骤找到摄像头选项,打开树莓派的摄像头功能。
打开后使用reboot命令重启树莓派,至此摄像头已经能够在树莓派上使用啦。
3.2 OpenCV应用
OpenCV就是基于图像处理的,这里我们利用OpenCV实现摄像头Camera进行拍照保存!
打开树莓派4B的 Thonny Python IDE 软件:
Python代码:
import cv2
import numpy as npcap = cv2.VideoCapture(0)
while(1):# get a frameret, frame = cap.read()# show a framecv2.imshow("capture", frame)if cv2.waitKey(1) & 0xFF == ord('q'):#退出并拍照cv2.imwrite("takephoto2.jpg", frame)print("take Photo Ok")break
cap.release()
cv2.destroyAllWindows()
上述代码,通过OpenCV打开摄像头Camera,之后将图像显示在窗口上,按“q”退出程序,并拍照保存!
四、项目效果
4.1 代码视频
树莓派4B的OpenCV简单应用
4.2 作者有话
本篇博客为作者树莓派专栏第一篇博客,帮助大家速通安装 OpenCV。后续作者将会利用树莓派4B作为载体帮助大家进行深度学习的实战!部署如:YOLOv5,YOLOv5-Lite等目标检测网络。同时也会将深度学习与嵌入式控制结合起来,帮助大家成功快速入门嵌入式AI!(后续也会有Jeston Nano开发板的坏境搭配教学,感兴趣的可以关注一波!)
五、项目代码
代码地址:基于树莓派4B的OpenCV安装速通版本的资源包资源-CSDN文库
如果积分不够的朋友,点波关注,评论区留下邮箱,作者无偿提供源码和后续问题解答。求求啦关注一波吧 !!!