基于树莓派4B的OpenCV安装与简单应用(真速通版)

news/2024/11/29 16:31:09/

前言:本文为手把手教学树莓派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作为载体帮助大家进行深度学习的实战!部署如:YOLOv5YOLOv5-Lite等目标检测网络。同时也会将深度学习与嵌入式控制结合起来,帮助大家成功快速入门嵌入式AI!(后续也会有Jeston Nano开发板的坏境搭配教学,感兴趣的可以关注一波!

五、项目代码

代码地址:基于树莓派4B的OpenCV安装速通版本的资源包资源-CSDN文库

如果积分不够的朋友,点波关注评论区留下邮箱,作者无偿提供源码和后续问题解答。求求啦关注一波吧 !!!


http://www.ppmy.cn/news/551040.html

相关文章

基于屏幕像素抖动的PCF

PCF无非就是把周围的像素加吧加吧, 然后取个平均值. 结果的平滑程度, 跟Kernel的大小有直接关系. 下面来对这个描过边的锯齿茶壶PCF一把: 2x2: 3x3: 4x4: 当然, Kernel越大, 效果越好. 但大到一定程度效果就不明显了, 而且还要考虑性能问题, 毕竟多次的纹理采样很慢. 其实呢, …

Godot屏幕抖动效果原理与实现

要用Godot实现屏幕/相机抖动效果,调查了网上的一些实现方案,效果都很不满意,于是自己实现了一个。 原理 从渲染过程看,实际发生抖动的是场景相机。 抖动过程对应物理学上的振动(物理量在某个定值附近反复变化&#x…

游戏界面缩放后屏幕抖动的问题

最近解决了一个游戏界面缩放后屏幕抖动的问题,拿来与大家分享一下。 我们公司的游戏在界面缩放到75%、50%、40%、25%后会出现明显的画面抖动,最后近过同事们的协助和努力之后,明白了DDraw缩放的规律,大致上的过程应该是&#xff…

计算机术语 抖动,如果计算机屏幕闪烁和抖动,该怎么办

如果计算机屏幕闪烁和抖动,该怎么办 对于经常使用计算机的朋友来说,监视器屏幕是每个人一直都必须面对的东西。电脑屏幕的闪烁或晃动会使您很快感到疲劳,并严重影响视力,因此建议您遇到电脑屏幕闪烁的情况,否则电脑屏幕…

css基础(二)

目录 1. CSS 的复合选择器 1.1 什么是复合选择器 1.2 后代选择器(重要) 1.3 子选择器(重要) 1.4 并集选择器(重要) 1.5 伪类选择器 1.6 链接伪类选择器 1.7 :focus伪类选择器 1.8 复合选择器总结 二、 CSS 的元素显示模式 2.1什么是元素显示模…

(新)苹果上架条款

1.使用条款 1.1为App Store应用开发者,您必须遵守 ProgramLicenseAgreement(PLA)、人机交互指南(HIG)以及您和苹果签订的任何其他协议与合同。以下规则和案例旨在帮助您的应用获得App Store的审核通过,而不是修改或删除任何其他协议中的条款。 2.功能 …

iOS提交版本时苹果官方审核拒绝原因详解

当用户从App Store安装应用的时候,他们需要确认这样的操作是安全的。所以应用程序不能包含令人不快或者冒犯性的内容,而且使用中不会造成身心伤害。我们列出了常见的几种缺陷,如果你的应用准备冒犯用户或者与用户发生冲突,App Sto…

苹果审核规则

几个比较重要的变化包括:对应用名称和截图进行了限制,必须要和应用的内容和功能相关;使用Apple Pay进行定期付款的应用程序必须展示每个阶段所需款额,费用归属以及如何取消;类似App Store,或者基于购买或者…