当按下某个键(例如 's')时保存图像
本文档由 AI 翻译。如您发现内容有误或有改进建议,欢迎通过页面下方的评论区,或在以下 Issue 页面中告诉我们:https://github.com/Seeed-Studio/wiki-documents/issues
简介
在本教程中,我们将指导您如何使用 全新安装的 Raspberry Pi OS Bullseye 或 BookWorm OS 设置 reTerminal。我们的目标是与 PiCam 交互,并使用 OpenCV 库进行图像处理和深度学习活动。
OpenCV
OpenCV(开源计算机视觉库):OpenCV 是一个功能强大的开源计算机视觉库,专为实时计算机视觉任务设计。它提供了一整套工具和功能,使开发者能够处理图像和视频,并为图像处理、目标检测、人脸识别等任务提供解决方案。OpenCV 在学术界和工业界广泛应用,支持多种编程语言,是跨平台计算机视觉应用的多功能选择。其灵活性和丰富的文档使其成为从事计算机视觉开发的人员不可或缺的资源。
入门
在开始这个项目之前,您需要提前准备好硬件和软件,如下所述。
硬件准备
软件准备
我们建议从官方网站安装 Bullseye 或 Bookworm 版本的 Raspberry Pi 64 位操作系统。如果您希望安装新的 Raspbian OS,请按照此 指南 中的步骤操作。
安装 OpenCV
如果您不想详细了解安装过程,我们为您提供了一个快捷方式。以下是使用 Bullseye OS 的简化步骤:
- 步骤 1 首先,将此 Git 仓库克隆到您的 Raspberry Pi 上,如下所示:
git clone https://github.com/Seeed-Studio/Seeed_Python_ReTerminal
- 步骤 2 接下来,使用我们的脚本轻松安装所需的 Python 包并下载 EfficientDet-Lite 模型。导航到以下文件夹:
cd Seeed_Python_ReTerminal/samples/Opencv_and_piCam/ObjectDetection
- 步骤 3 脚本将安装所需的依赖项并下载本教程系列所需的 TFLite 模型:
sh setup.sh
如果您使用的是 Bookworm OS,请按照以下步骤操作:
- 步骤 1 在终端中执行以下命令以安装:
sudo apt-get install libopencv-dev python3-opencv
- 步骤 2 接下来,将此 Git 仓库克隆到您的 Raspberry Pi 上,如下所示:
git clone https://github.com/Seeed-Studio/Seeed_Python_ReTerminal
获取视频流
在新的终端窗口中导航到 Opencv_and_piCam 文件夹:
cd Seeed_Python_ReTerminal/samples/Opencv_and_piCam
在本教程中,我们将使用 PiCam 和 OpenCV 在 reTerminal 上启动一个“Hello World”程序。您可以在克隆的仓库中找到 captureimages.py 文件。我们将探索实时视频流,如果您按下 'q',视频流将优雅地停止。您甚至可以使用 Thonny IDE 来运行该 Python 脚本。
python captureimages.py
您将看到如下的视频流:

为了方便参考,我们提供了完整的代码片段:
import cv2
from picamera2 import Picamera2
picam2 = Picamera2()
picam2.preview_configuration.main.size = (1280,720)
picam2.preview_configuration.main.format = "RGB888"
picam2.preview_configuration.align()
picam2.configure("preview")
picam2.start()
while True:
im = picam2.capture_array()
cv2.imshow("Camera", im)
if cv2.waitKey(1) == ord('q'):
break
cv2.destroyAllWindows()
捕获照片并保存
在这里,我们将使用 PiCam 和 OpenCV 在 ReTerminal 上捕获静态图像。您可以在克隆的仓库中找到 saveimage.py 文件。我们将进行实时视频流,如果您按下 's',将捕获一张照片。您甚至可以使用 Thonny IDE 来运行该 Python 脚本。
python saveimage.py
您将在同一目录中找到捕获的图像:
为了方便参考,我们提供了完整的代码片段:
import cv2
from picamera2 import Picamera2
picam2 = Picamera2()
picam2.preview_configuration.main.size = (1280, 720)
picam2.preview_configuration.main.format = "RGB888"
picam2.preview_configuration.align()
picam2.configure("preview")
picam2.start()
try:
while True:
im = picam2.capture_array()
cv2.imshow("Camera", im)
key = cv2.waitKey(1)
if key == ord('s'):
# 使用 OpenCV 保存图像
cv2.imwrite("captured_image.jpg", im)
print("图像已保存!")
# 当按下 'q' 时退出循环
elif key == ord('q'):
break
finally:
# 释放资源
cv2.destroyAllWindows()
picam2.stop()
picam2.close()
技术支持
感谢您选择我们的产品!我们致力于为您提供多种支持,以确保您使用我们的产品时能够尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。