主要内容

使用覆盆子PI相机板

此示例显示了如何使用MATLAB®支持包进行Raspberry PI硬件从RaspberryPI®相机板模块捕获和处理图像。金宝app

介绍

覆盆子PI相机板是用于覆盆子PI硬件的自定义设计的附加模块。它通过自定义CSI接口附加到覆盆子PI硬件。传感器在仍捕获模式下具有500万像素的本机分辨率。在视频模式下,它支持每秒30帧的捕金宝app获分辨率高达1080p。金宝搏官方网站相机模块重量轻,小使其成为移动项目的理想选择。

在这个例子中,您将学习如何创建一个Cameraboard.要连接到覆盆子PI相机板的对象,从相机捕获图像并在MATLAB中处理它们。

先决条件

需要硬件

要运行此示例,您将需要以下硬件:

  • 覆盆子PI硬件

  • 电源至少为1A输出

  • 一个相机板

连接相机板

相机板通过带状电缆连接到覆盆子PI。带状电缆的一端进入相机PCB,另一端连接到覆盆子PI硬件本身。您需要以正确的方式获取带状电缆连接,或相机无法工作。在相机PCB上,电缆上的蓝色背衬应朝离PCB,并在覆盆子PI硬件上,它应该面向以太网连接。

创建相机板对象

通过在MATLAB提示符上执行以下命令来创建相机板对象。

清除RPI.RPI = Raspi();CAM = Cameraboard(RPI,'解析度''640x480');

凸轮是对摄像机对象的句柄。让我们在Matlab中显示从Raspberry PI相机板捕获的图像。

为了i = 1:100 img =快照(Cam);图像(IMG);粗暴;结尾

检查对象属性

相机板MATLAB命令行界面具有许多公开摄像机功能的属性。要查看Cameraboard类的属性,请在MATLAB提示符上输入以下内容。

cam

使用Cameraboard对象的属性,您可以水平或垂直翻转图像,更改图像质量参数,如亮度,对比度,饱和度和清晰度,以及访问高级相机功能,如图像稳定和图像效果。实例化后,无法更改分辨率和帧性属性。如果要更改这些属性,请从MATLAB工作区清除Cameraboard对象,并通过指定新分辨率和帧率参数来创建新对象。

清除camCAM = Cameraboard(RPI,'解析度''320x240''富裕',30);

可以随时更改Cameraboard对象的其他属性。但新设置生效需要5帧。让我们尝试水平翻转图像。

图1);为了i = 1:5 img =快照(Cam);结尾图像(IMG);cam.horizo​​ntalflip = true;为了i = 1:5 img =快照(Cam);结尾图(2);图像(IMG);

图像效果

让我们在从Raspberry PI相机板捕获的图像上尝试简单的图像反演算法。

图1);为了i = 1:100 img =快照(Cam);IMG = 255  -  IMG;图像(IMG);粗暴;结尾

图像反演创建颜色负效果。覆盆子PI相机板本身可以通过将图像效率属性设置为“否定”来颠倒图像。

图1);Cam.imageEffect =.'消极的';为了i = 1:100 img =快照(Cam);图像(IMG);粗暴;结尾

这是一个更有趣的图像效果。

图1);Cam.imageEffect =.'草图';为了i = 1:100 img =快照(Cam);图像(IMG);粗暴;结尾

数码变焦

覆盆子PI相机板允许传感器区域用作图像捕获区域。该区域称为兴趣区域(ROI),被指定为归一化向量[x y W H],其中x,y定义左上角,w和h指定宽度和高度。

在保持输出图像尺寸的同时减少投资回报率恒定导致数字缩放效果。以下MATLAB代码会改变ROI的X和Y参数以缩小传感器的右下方。被捕获的传感器的近似面积由红色矩形表示。

图1);ROI = [0 0 1 1];cam.roi = [0 0 1 1];为了i = 1:10 img =快照(凸轮);结尾子图(211);图像(IMG);粗暴;rect =矩形('位置',[1 1 320 240]);rect.edgecolor =.'红色的';为了i = 1:200 img =快照(Cam);如果i> 20 fc =(i  -  5)* 0.0025;ROI(1:2)= [FC,FC];ROI(3:END)= [1-FC,1-FC];Cam.Roi = ROI;子图(211);Rect.Position = ROI。* [320 240 320 240];粗暴;子图(212);图像(IMG);粗暴;结尾结尾

录视频

您可以使用覆盆子PI相机板的MATLAB命令行界面录制视频。您可以通过执行记录命令开始录制视频。在执行后立即返回记录命令返回到MATLAB命令提示符,并且不等待要记录的整个视频。在视频录制过程中,由相机板捕获的图像以原始的H264格式保存到覆盆子PI硬件上的文件。视频录制完成后,您可以将视频文件带到主计算机以进行播放。视频录制正在进行中,您无法拍摄快照。由于录制的视频以原始的H264格式为,大多数播放器无法直接播放视频文件。必须将录制的H264流转换为适当的格式,例如MP4,然后在您可以在MATLAB中播放或加载它之前。

在MATLAB命令提示符上执行以下内容以将视频录制到名为“VID.H264”的文件30秒。

记录(Cam,'vid.h264',30)

Record命令开始视频录制。它不会阻止MATLAB命令提示符。您可以在视频录制正在进行时执行MATLAB操作。但是,您无法从相机中拍摄快照。要检查录制是否已完成,请使用CameraBoard对象的录制属性。

Cam.Recording.

录制完成后,此属性返回False。如果要随时停止视频录制,请使用CameraBoard对象的停止方法。

将录制的原始H264视频流带到主机上。

getfile(RPI,'vid.h264'

在您可以在媒体播放器中播放或在MATLAB中将其加载之前,还需要将原始的H264流转换为视频文件格式(例如MP4),例如MP4。您可以使用FFMPEG™将原始H264转换为MP4视频文件。在适当的安装说明下使用FFMPEG.ORG网站中使用相应的下载链接将FFMPEG安装到主机。安装FFMPEG后,定义存储安装位置的MATLAB变量。例如:

ffmpegdir ='C:\ ffmpeg-20140218-git-61d5970-win32-static'

将上面的路径替换为计算机中适当的FFMPEG安装路径。要从捕获的原始H264流中创建MP4视频文件,请在MATLAB命令提示符上执行以下内容。

cmd = ['“'fullfile(ffmpegdir,'bin''ffmpeg.exe''“-r 30 -i vid.h264 -vcodec复制myvid.mp4&'];[状态,消息] =系统(CMD)

FFMPEG完成视频转换后,您最终可以使用您可以在媒体播放器中播放的MP4视频文件。您还可以将视频加载到MATLAB以进行处理。要在MATLAB中播放捕获的视频,请在MATLAB命令提示符上执行以下内容。

Vid = Videoreader('myvid.mp4'为了k = 1:vid.numberOfframes映像(读取(vid,k));粗暴;结尾

概括

此示例介绍了使用MATLAB支持包的Raspberry PI相机板的工作流程。金宝app