基于MATLAB的视频处理
应用程序、示例和技术
目标跟踪
目标跟踪是许多应用,包括行人避让,安全和监控,以及增强现实的重要组成部分。从固定摄像机的视频感动的人这方面的例子显示了基于运动的跟踪。
目标检测与计数
视频处理可以用来检测和计数对象在视频序列这一举动。在这种情况下研究中,科学家在澳大利亚使用录像来估算水鸟的野生动物种群。
MATLAB软件®提供用于查看、分析、读取和编写视频的工具和算法。视频处理在以下应用中非常有用:
4个简单步骤的视频处理
MATLAB中的视频处理包括以下步骤:
- 看录像
- 显示视频
- 处理视频
- 编写视频
步骤1.读取视频
您可以从文件中或直接从相机读取视频。
一个MATLAB命令允许您从文件中读取视频:
>>vid=视频阅读器('filename.avi')
MATLAB支金宝app持网络摄像头用于视频处理,而图像获取工具箱™能够从许多工业和科学相机进行实时采集。
MATLAB让您使用各种编解码器读取视频文件包括针对Microsoft的特定于操作系统的编解码器®视窗®,Mac和Linux®.
第3步. 处理视频
视频是单个视频帧,或图像序列。此装置的一个算法设计为在图像上进行边缘检测可以迅速转换到对视频执行边缘检测。
阅读单个图像 |
从视频中读取图像帧 |
---|---|
|
|
视频处理可以如在例如使用边缘检测,或显著更复杂,如必须考虑在先前帧中的对象的位置跟踪算法是非常简单的。
有关高级视频处理的详细信息,请参见以下示例:
步骤4. 写视频
处理后,可以将视频的每一帧写入文件。您可以使用以下功能创建视频文件:
>> vid_w = VideoWriter('新文件.avi');>>开放(vid_w)
变量vid_w
可以积累新帧以创建视频。
一个完整的MATLAB示例
将所有组件组合在一起,让我们通过一个完整的示例来演示读取、显示、处理和编写视频的步骤:
%%读取和处理视频到MATLAB%设置:创建视频Reader和WritervideoFileReader=视频阅读器('tilted_face.avi');为myVideo = VideoWriter('myFile.avi文件');%设置:创建可展开视频播放器和面部探测器depVideoPlayer = vision.DeployableVideoPlayer;faceDetector = vision.CascadeObjectDetector();打开(为myVideo);%%检测面中的每个帧而hasFrame(视频文件阅读器)%读取视频帧videoFrame=readFrame(视频文件读取器);%工艺框架bbox=面部探测器(视频帧);videoFrame=插入形状(视频帧,'长方形',BBOX);%显示视频帧到屏幕视频播放器(videoFrame);%写入帧到最终的视频文件writeVideo(myVideo,videoFrame);暂停(1/videoFileReader.FrameRate视频文件读取器);结束关闭(为myVideo)
您可以下载此代码在MATLAB Central上。
计算机视觉中的视频处理算法
使用时间相关性用于视频处理的MATLAB算法是基于“状态,”的概念的思想,该算法工作的当前视频帧上,但也使用先前帧来确定其输出。这是目标跟踪算法,它依赖于之前的信息,以便为将来的行动是至关重要的。跟踪的一个常见的例子是KLT算法,它跟踪对象中的各个点以跟踪对象的位置。
视频处理算法的开发人员也可以在计算机视觉系统工具箱™. 这些算法可以让你快速、高效地阅读和观看高分辨率视频。工具箱还包括三维点云处理、立体视觉、目标检测、跟踪和识别等应用的算法。