主要内容

使用树莓派相机板

本示例向您展示如何使用MATLAB®树莓派硬件支持包从树莓派®相机板模块捕获和处理图像。金宝app

简介

树莓派相机板是为树莓派硬件定制的附加模块。它通过自定义CSI接口连接到树莓派硬件。该传感器在静态捕获模式下具有500万像素的原生分辨率。在视频模式下,它支持高达1080p金宝app的每秒30帧的捕获分辨率。金宝搏官方网站相机模块重量轻,体积小,是移动项目的理想选择。

在本例中,您将学习如何创建cameraboard对象连接到树莓派相机板,从相机中捕获图像并在MATLAB中进行处理。

先决条件

所需的硬件

要运行这个例子,你需要以下硬件:

  • 树莓派硬件

  • 至少有1A输出的电源

  • A摄像板

连接摄像头板

摄像头板通过带状电缆连接到树莓派上。带状电缆的一端连接到相机PCB,另一端连接到树莓派硬件本身。你需要正确地连接带状电缆,否则相机将无法工作。在相机PCB上,电缆上的蓝色背板应该远离PCB,而在树莓派硬件上,它应该面向以太网连接。

创建一个Camera Board对象

在MATLAB提示符上执行以下命令创建摄像机板对象。

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

摄影机是摄影机上物体的手柄。让我们在MATLAB中显示从树莓派相机板捕获的图像。

I = 1:100 img =快照(凸轮);图像(img);drawnow;结束

检查对象属性

Camera Board的MATLAB命令行接口有许多属性,这些属性公开了Camera的特性。要查看cameraboard类的属性,请在MATLAB提示符中输入以下命令。

凸轮

使用cameraboard对象的属性,您可以水平或垂直翻转图像,更改亮度、对比度、饱和度和锐度等图像质量参数,并访问图像稳定和图像效果等高级相机功能。Resolution和FrameRate属性在实例化后不能更改。如果要更改这些属性,请从MATLAB工作区中清除cameraboard对象,并通过指定新的Resolution和FrameRate参数来创建一个新对象。

清晰的凸轮CAM = cameraboard(rpi,“决议”“320 x240”的帧速率, 30);

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

图(1);I = 1:5 img =快照(凸轮);结束图像(img);凸轮。HorizontalFlip = true;I = 1:5 img =快照(凸轮);结束图(2);图像(img);

形象的影响

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

图(1);I = 1:100 img =快照(凸轮);Img = 255 - Img;图像(img);drawnow;结束

图像反转会产生颜色上的负面效果。树莓派相机板本身可以通过设置ImageEffect属性为“负”来反转图像。

图(1);凸轮。ImageEffect =“负面”I = 1:100 img =快照(凸轮);图像(img);drawnow;结束

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

图(1);凸轮。ImageEffect =“草图”I = 1:100 img =快照(凸轮);图像(img);drawnow;结束

数码变焦

树莓派相机板允许传感器的一个区域用作图像捕获区域。这个区域称为感兴趣区域(ROI),被指定为一个规范化向量[x y wh],其中x, y定义了左上角,w和h指定了宽度和高度。

在保持输出图像大小不变的情况下降低ROI会产生数字缩放效果。下面的MATLAB代码改变ROI的x和y参数,放大到传感器的右下部分。被捕获的传感器的近似区域由红色矩形表示。

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

录制视频

树莓派摄像板可以使用MATLAB命令行接口进行视频录制。通过执行record命令开始录制视频。录制命令在执行后立即返回MATLAB命令提示符,而不等待整个视频被录制。视频录制过程中,摄像板拍摄的图像会以H264原始格式保存到树莓派硬件上。视频录制完成后,您可以将视频文件带到主机上进行回放。在录像过程中,不能进行快照操作。由于录制的视频是原始的H264格式,大多数玩家无法直接播放视频文件。录制的H264流必须转换为适当的格式,例如MP4,然后才能回放或在MATLAB中加载它。

在MATLAB命令提示符上执行以下命令,将视频录制到名为“vid”的文件中。H264 ' 30秒。

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

record命令用来开始录像。它不会阻塞MATLAB命令提示符。可以在录像过程中进行MATLAB操作。但是,您不能从相机拍摄快照。要检查录制是否完成,请使用cameraboard对象的recording属性。

凸轮。记录

当记录完成时,此属性返回false。如果您想随时停止视频录制,请使用cameraboard对象的stop方法。

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

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

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

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

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

CMD = [“””fullfile (ffmpegDir“本”“ffmpeg.exe”'”-r 30 -i vid。H264 -vcodec复制myvid.mp4 &'];[status, message] = system(cmd)

在FFmpeg完成视频转换后,您将得到一个可以在媒体播放器中播放的MP4视频文件。也可以将视频加载到MATLAB中进行处理。要在MATLAB中播放捕获的视频,请在MATLAB命令提示符上执行以下命令。

视频阅读器(“myvid.mp4”K = 1:vid。NumberOfFrames image(read(vid, k));drawnow;结束

总结

本例介绍了树莓派相机板MATLAB支持包的使用流程。金宝app