主要内容

与覆盆子π相机

这个例子向您展示了如何捕捉和处理图像从树莓π™相机板模块使用MATLAB®为覆盆子π硬件支持包。万博1manbetx

介绍

覆盆子π相机板是一个自定义插件模块为覆盆子π的硬件设计。它高度覆盆子π硬件通过一个定制的CSI接口。传感器有5个像素的原始分辨率仍然在捕获模式。在它所支持的视频模式捕获分辨率高达万博1manbetx1080 p以每秒30帧。万博 尤文图斯相机模块是重量轻和小使其移动项目的理想选择。

在这个例子中,您将学习如何创建一个cameraboard对象连接到覆盆子π相机,捕捉图像的相机,在MATLAB处理它们。

先决条件

所需的硬件

运行这个例子中您将需要以下硬件:

  • 覆盆子π硬件

  • 电源至少1输出

  • 一个相机板

连接相机板

相机板高度的覆盆子π通过带状电缆。带状电缆的一端进入相机PCB,另一端连接到覆盆子π硬件本身。你需要得到带状电缆连接正确的方式,或相机不工作。相机上的PCB,蓝色的支持在电缆应该面对远离PCB,和树莓π硬件应该正对以太网连接。

创建一个相机板对象

通过执行下面的命令创建一个相机板对象在MATLAB提示。

清晰的零售物价指数零售物价指数= raspi ();凸轮= cameraboard(零售物价指数,“决议”,“640 x480”);

凸轮是cameraboard对象的句柄。让我们从树莓π相机捕获的图像显示板在MATLAB。

我= 1:10 0 img =快照(cam);图像(img);drawnow;结束

检查对象属性

相机的MATLAB命令行接口板有很多属性,使相机的特性。查看cameraboard类类型的属性下面的MATLAB提示。

凸轮

使用cameraboard对象的属性,可以水平或者垂直翻转图片,改变图像质量参数如亮度、对比度、饱和度、锐度和访问高级相机功能,如图像稳定和图像效果。分辨率和帧速率属性实例化后不能更改。如果你想改变这些属性,明确从MATLAB工作区cameraboard对象并创建一个新的对象通过指定分辨率和帧速率参数。

清晰的凸轮凸轮= cameraboard(零售物价指数,“决议”,“320 x240”,的帧速率,30);

cameraboard对象的其他属性,可以在任何时候改变。让我们尝试翻转图像水平。

图(1);图像(img);凸轮。HorizontalFlip = true;图(2);图像(img);

形象的影响

让我们尝试一个简单的图像反演算法在图像捕获从树莓π相机。

图(1);我= 1:10 0 img =快照(cam);img = 255 - img;图像(img);drawnow;结束

图像反演创建一个颜色的负面影响。覆盆子π相机板本身可以转化的图像将ImageEffect属性设置为“负面”。

图(1);凸轮。ImageEffect =“负面”;我= 1:10 0 img =快照(cam);图像(img);drawnow;结束

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

图(1);凸轮。ImageEffect =“草图”;我= 1:10 0 img =快照(cam);图像(img);drawnow;结束

数码变焦

覆盆子π相机板允许传感器的一个区域被用作图像捕获区域。这个地区,称为感兴趣的区域(ROI),被指定为一个归一化向量x y w h x, y定义左上角和w和h指定宽度和高度。

减少ROI而保持输出图像大小不变的结果在数字缩放效果。下面的MATLAB代码不同的x和y参数的ROI放大的右下部分传感器。近似区域的传感器被俘虏被红色矩形表示。

图(1);投资回报率= (0 0 1 1);凸轮。投资回报率= (0 0 1 1);我= 1:10 img =快照(cam);结束次要情节(211);图像(img);drawnow;矩形=矩形(“位置”[1 1 320 240]);rect.EdgeColor =“红色”;我= 1:200 img =快照(cam);如果我> 20 fc = (i - 5) * 0.0025;roi (1:2) = (fc, fc);roi(3:结束)= [1-fc 1-fc];凸轮。投资回报率= ROI;次要情节(211);rect.Position = roi。* (320 240 320 240);drawnow;次要情节(212);图像(img); drawnow;结束结束

录制视频

你可以录制视频使用MATLAB命令行界面覆盆子π相机板。你开始录制视频通过执行命令的记录。记录命令返回到MATLAB命令提示符后立即执行和不等待整个视频记录。在录像中,图像被相机板保存到一个文件在原始莓π硬件H264格式。视频录制完成后,你可以把播放的视频文件到你的主机。你不能拍照,录像正在进行中。由于录像是在原始H264格式,大多数玩家不能直接播放视频文件。记录H264流必须被转换成适当的格式,比如一个MP4,之前你可以回来在MATLAB或加载它。

MATLAB命令提示符上执行下列文件称为“vid录制视频。h264的30秒。

记录(凸轮,“vid.h264”,30)

记录命令开始录像。它不会阻止MATLAB命令提示符。你可以在录像过程中执行MATLAB操作。然而,你不能从相机拍照。检查记录是否完整,使用记录cameraboard对象的属性。

cam.Recording

这个属性记录完成时返回false。如果你想在任何时候停止录像,使用停止cameraboard对象的方法。

把记录原始H264视频到您的主机。

getFile(零售物价指数,“vid.h264”)

原始的H264流需要转换成一个视频文件格式,如MP4,之前在媒体播放器播放它在MATLAB或加载它。您可以使用FFmpeg™将原始H264一个MP4视频文件。安装FFmpeg到你的主机使用适当的下载链接后的ffmpeg.org网站适当的安装说明。在您安装FFmpeg之后,定义一个MATLAB变量存储安装位置。例如:

ffmpegDir =“C: \ ffmpeg - 20140218 - git - 61 d5970 - win32 -静态的

上面的路径替换为相应的FFmpeg在你的电脑安装路径。创建一个MP4视频文件的原始H264流你捕获,MATLAB命令提示符上执行以下。

cmd = [“””fullfile (ffmpegDir“本”,“ffmpeg.exe”)“30 - r -我视频。h264 myvid -vcodec副本。mp4 &’];(地位、消息)=系统(cmd)

FFmpeg视频转换完成后,最后一个MP4视频文件,你就可以在一个媒体播放器。你也可以加载视频MATLAB进行处理。在MATLAB中发挥捕获的视频,在MATLAB命令提示符下执行以下。

vid = VideoReader (“myvid.mp4”)k = 1:视频。NumberOfFrames形象(读(vid, k));drawnow;结束

注意:FFmpeg是第三方工具和任何相关的问题并不是与MATLAB相关联。