使用树莓派相机板
本示例向您展示如何使用MATLAB®树莓派硬件支持包从树莓派®相机板模块捕获和处理图像。金宝app
简介
树莓派相机板是为树莓派硬件定制的附加模块。它通过自定义CSI接口连接到树莓派硬件。该传感器在静态捕获模式下具有500万像素的原生分辨率。在视频模式下,它支持高达1080p金宝app的每秒30帧的捕获分辨率。金宝搏官方网站相机模块重量轻,体积小,是移动项目的理想选择。
在本例中,您将学习如何创建cameraboard对象连接到树莓派相机板,从相机中捕获图像并在MATLAB中进行处理。
先决条件
我们建议填写树莓派硬件的MATLAB支持包入门金宝app的例子。
所需的硬件
要运行这个例子,你需要以下硬件:
树莓派硬件
至少有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