如何使用 Raspberry Pi 摄像头构建项目

还没有读者喜欢这篇文章。
author photos with filters

Raspberry Pi 基金会。 CC BY-SA 4.0. 

Raspberry Pi 摄像头模块是 Pi 的绝佳配件——它质量上乘,可以拍摄静态照片和录制全高清 (1080p) 视频。最初的 500 万像素摄像头模块于 2013 年发布,而新的 800 万像素版本于今年 4 月发布。这两个版本都与所有 Raspberry Pi 型号兼容。还有两种变体——常规可见光摄像头和红外摄像头——均售价 25 美元。

摄像头模块规格很高,质量比基本的 USB 网络摄像头好得多。其功能丰富的固件充分利用了 Raspberry Pi SoC 中的 VideoCore GPU 的强大功能,允许以 30fps 录制 1080p 视频、以 60fps 录制 720p 视频以及以 90fps 录制 VGA 分辨率 (640x480) 视频——非常适合慢动作回放。

开始入门

首先,在 Pi 关闭电源的情况下,您需要将摄像头模块连接到 Raspberry Pi 的摄像头端口,然后启动 Pi 并确保软件已启用。在您的 Raspberry Pi 上找到摄像头端口并连接摄像头

Dave Jones,CC BY-SA

确保在 Raspberry Pi 配置工具中启用摄像头软件

screenshot

通过打开终端窗口并输入 raspistill -k 来测试您的摄像头。这将会在监视器上显示摄像头预览。如果您通过 SSH 或 VNC 连接,这将显示在 Pi 的监视器上,而不是您的监视器上。按 Ctrl + C 退出预览。

Python

虽然您可以使用命令行界面 raspistill 控制摄像头,但使用 Python picamera 模块要容易得多,并且允许您实时动态更改摄像头控件——非常适合项目。

打开 Python 3 编辑器 IDLE,创建一个新文件并键入以下代码

from picamera import PiCamera
from time import sleep

camera = PiCamera()

camera.start_preview()
sleep(3)
camera.capture('/home/pi/Desktop/image.jpg')
camera.stop_preview()

现在运行代码,它应该显示三秒钟的预览,然后拍摄照片。照片将保存在您的桌面上,您应该立即看到一个带有缩略图的图标。双击桌面上的图标即可查看照片。

您可以以各种方式操作摄像头对象。您可以使用介于 0 到 100 之间的值来更改亮度和对比度: camera.brightness = 70 camera.contrast = 40 您可以使用以下代码向图像添加文本: camera.

annotate_text = “Hello world"

您可以使用以下代码更改图像效果

camera.image_effect = “colorswap"

还可以尝试 sketchnegativeemboss 等效果。效果列表在 camera. 中提供

IMAGE_EFFECTS,您可以循环遍历它,这是一个很棒的演示

camera.start_preview()
for effect in camera.IMAGE_EFFECTS:
    camera.image_effect = effect
    camera.annotate_text = effect
    sleep(5)
camera.stop_preview()

您还可以更改更多属性,例如分辨率、变焦、ISO、白平衡模式和曝光模式。有关更多详细信息,请参阅 picamera 文档

视频

录制视频同样容易——只需使用方法 start_recording()stop_recording()

camera.start_preview()
camera.start_recording('/home/pi/video.h264')
sleep(10)
camera.stop_recording()
camera.stop_preview()

然后使用 omxplayer 回放。请注意,视频的回放帧速率可能高于录制时的帧速率。

红外

Raspberry Pi 红外摄像头 (Pi NoIR) 的特别之处在于,人们购买常规摄像头并将其拆开以移除红外滤镜(效果参差不齐),因此基金会决定生产一种没有红外滤镜的特殊摄像头。API 的工作方式完全相同,在可见光下,图片看起来大多正常,但它们也可以看到红外光,从而可以在夜间拍摄和录制。

Pi camera

这非常适合野生动物摄像头,例如 Naturebytes 套件红外鸟箱等项目,以及各种安全摄像头项目。红外摄像头甚至已被用于监测南极洲的企鹅

该摄像头还可用于监测绿色植物的健康状况

Pi Zero

当去年宣布 5 美元的 Pi Zero 时,由于其最基本和简约的性质,它没有配备摄像头连接器;然而,上个月宣布了 Zero 的新版本,该版本添加了一个摄像头端口。

该连接器比常规连接器小。事实上,计算模块上使用了相同的连接器,但可以使用电缆连接摄像头。可见光和红外两种类型以及 V1 和 V2 两种版本都适用于新的 Pi Zero。

更多想法

关于摄像头模块的用途还有很多内容可以阅读,为什么不与一些 GPIO 结合使用以进行更多物理计算项目呢?

User profile image.
Ben 是 BBC News Labs 的软件工程师,曾任 Raspberry Pi 的社区经理。他热衷于 Linux、Python 和所有开源事物!在 Twitter 上关注 Ben @ben_nuttall。

3 条评论

感谢这篇文章!——pi zero 也可以录制 1080p 30fps 吗?我似乎在任何地方都找不到这个信息。

我正在研究 Pi 平台,用于 DIY 安全系统...是否有任何理由不使用 Pi Zero (+USB 无线) 而不是 Pi 3?

感谢您的任何想法!

是的,它可以。

假设您不需要额外的 CPU 性能,您的项目没有理由不能在 Pi Zero 上运行。

回复 作者 CC (未验证)

这需要花费太多时间才能在此处完全解决,因此我正在寻求在汽车应用方面的帮助,以取代外部 GoPro 风格的设备以及行车记录仪。这是我的概要。如果您在车辆上安装了外部摄像头并且在公共街道上行驶,至少在我所在的地区,执法部门会对您产生兴趣,就像您在《街头飙车》中一样,我看到西雅图市中心的行人冲到人行道旁,将它们从车辆上扯下来,祝你好运,因为您几乎没有机会再见到那台昂贵的黑色版 GoPro 了。

同样,如果您卷入事故,行车记录仪或 GoPro 可能会救您一命或让您丧命。不幸的是,这不会由您选择,因为它们很可能会在现场被没收,并且连同您汽车的“黑匣子”,他们会知道您是否系了安全带、速度、转向角、您是否在事故发生前试图刹车,以及配备抬头显示器的新型汽车具有眼球追踪功能,而像 OnStar 这样的服务始终在监听,因此您说的任何话都可能在法庭上对您不利。

我想要一个小型 CMOS 摄像头系统,格栅中 2 个(1 个日光和 1 个夜视或红外)+ 每个车门中 1 个面向相对的窗户,以记录如果被拦下等情况下发生的事情,最后是在保险杠或扰流板中安装一套日/夜摄像头,朝向后方。我想要 1080p、RsPBpi 或 Arduino 控制、某种车内控制来激活系统、在日/夜摄像头之间切换等,以及至少 6 小时所有摄像头都处于活动状态的 sdhc 或 SSD 存储。有什么想法或资源链接吗?TIA!。

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.