Raspberry Pi Trading 上周发布了新版本的树莓派 OS 。新 OS 的亮点主要是更新了可用于树莓派的 Picamera2 Python 摄像头库,以及一些其他的小变化。例如:搜索菜单项的能力、新的音频输入控件。
新的 Picamera2 库其实在今年 2 月中旬就发布过预览版了,这个版本的出现意味着该 Python 库首次被默认包含在了树莓派 OS 中。该摄像头库基于的是libcamera 开源框架,而不是来自博通公司专有和封闭式摄像头 API 原始 Picamera 库中。
Picamera2 库的一些主要功能如下所示:
- 预览窗口可以使用 OpenGL 加速进行硬件辅助渲染或 DRM/KMS 在 X Windows 未运行时进行高效渲染
- Picamera2 命令可以输入到 Python 解释器或脚本中
- 支持将 Picamera2 widget嵌入到Qt 应用程序中
- NumPy集成提供了对 OpenCV、TensorFlow 和其他 Python“科学计算”库的更轻松使用。
- 视频编码和录制
- 一起录制音频和视频
- 在摄像头图像上绘制显示叠加层
- 支持所有官方树莓派摄像头以及来自Arducam和其他公司的一些第三方摄像头
他们的源代码和文档可以在 GitHub 上找到。该库应该也包含在最新的树莓派OS 镜像中了,但如果它不存在,或者想要将其安装到较旧的 Bullseye 镜像上,可以按照如下方式安装:
1 |
sudo apt install -y python3-picamera2 |
使用摄像头拍照仅仅需以下代码:
1 2 3 |
from picamera2 import Picamera2 picam2 = Picamera2() picam2.start_and_capture_file("test.jpg") |
如果想在拍照之前显示预览窗口,步骤也不会太复杂。
1 2 3 4 5 6 7 8 9 10 |
from picamera2 import Picamera2, Preview import time picam2 = Picamera2() camera_config = picam2.create_preview_configuration() picam2.configure(camera_config) picam2.start_preview(Preview.QTGL) picam2.start() time.sleep(2) picam2.capture_file("test.jpg") |
上面的示例代码主要对 X-Windows 有效,但如果使用的不是 X-Windows,可以使用 Preview.DRM 的 Preview.QTGL 替代:
1 2 3 4 5 6 7 8 9 10 |
from picamera2 import Picamera2, Preview import time picam2 = Picamera2() camera_config = picam2.create_preview_configuration() picam2.configure(camera_config) picam2.start_preview(Preview.DRM) picam2.start() time.sleep(2) picam2.capture_file("test.jpg") |
Picamera2 Python 摄像头库还可以用于拍摄视频、调整摄像头参数(曝光、增益等)、显示叠加层、将视频流式传输到网络等等。
他们未来还计划增加其他一些功能,包括:修复可能出现在测试版中的错误、改进文档、改进曝光和增益的逐帧控制等等。
本文消息来源于树莓派网站
文章翻译者:Nicholas,技术支持工程师、瑞科慧联(RAK)高级工程师,深耕嵌入式开发技术、物联网行业多年,拥有丰富的行业经验和新颖独到的眼光!