如何使用 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 个夜视或红外)+ 每个门中各一个,面向对面的窗户,以记录被拦下时发生的事情等,最后在保险杠或扰流板中安装一个日/夜套装,面向后方。我想要 1080p、RsPBpi 或 Arduino 控制、某种类型的车内控制来激活系统、在日/夜摄像头之间切换等,以及用于至少 6 小时所有摄像头活动的 sdhc 或 SSD 存储。有什么想法或资源链接吗?TIA!。

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