用MATLAB进行视频处理
应用程序、例子和技术
对象跟踪
目标跟踪是许多应用程序的重要组成部分,包括行人回避,安全和监视,以及增强现实。这个例子展示了基于运动的跟踪视频中的移动的人从一个固定的摄像机。
对象检测与计数
视频处理可以用来检测和计数在视频序列中移动的对象。在这个案例研究中,澳大利亚的科学家使用视频片段来估计野生水鸟的数量。
MATLAB®提供工具和算法,让您查看,分析,读取和写入视频。视频处理在以下应用中很有用:
- 基于深度学习的目标识别
- 运动估计,如光流
- 人脸检测与跟踪
视频处理在4个简单的步骤
MATLAB中的视频处理包括以下步骤:
- 看视频
- 显示视频
- 处理视频
- 写的视频
步骤1.看视频
您可以从文件或直接从摄像机读取视频。
一个简单的MATLAB命令可以让你从文件中读取视频:
>> vid =视频阅读器(“filename.avi”)
MATLAB支金宝app持网络摄像头对于视频处理,而图像采集工具箱™能够从许多工业和科学摄像机进行实时采集。
MATLAB可以让你使用各种编解码器读取视频文件包括针对微软操作系统的编解码器®窗户®, Mac和Linux®.
步骤3.处理视频
视频是一系列独立的视频帧或图像。这意味着,设计用于对图像进行边缘检测的算法可以快速转换为对视频进行边缘检测。
看一张图片 |
从视频读取图像帧 |
---|---|
|
|
视频处理可以非常简单,如使用边缘检测的例子,也可以非常复杂,如跟踪算法必须考虑到目标在前一帧中的位置。
有关高级视频处理的更多信息,请参阅示例:
步骤4.写的视频
经过处理后,您可以将视频的每一帧写回文件。您可以使用以下功能创建视频文件:
>> vid_w = VideoWriter(“newfile.avi”);> >开放(vid_w)
的变量vid_w
可以累积新帧来创建视频。
一个完整的MATLAB示例
将所有组件放在一起,让我们运行一个完整的示例来展示读取、显示、处理和写入视频的步骤:
%%读取并处理一个视频到MATLABvideoFileReader = VideoReader (“tilted_face.avi”);myVideo = VideoWriter (“myFile.avi”);%安装:创建可部署的视频播放器和面部检测器depVideoPlayer = vision.DeployableVideoPlayer;faceDetector = vision.CascadeObjectDetector ();打开(myVideo);%%在每一帧中检测人脸而hasFrame (videoFileReader)读视频帧videoFrame = readFrame (videoFileReader);%的过程框架bbox = faceDetector (videoFrame);videoFrame = insertShape (videoFrame,“矩形”, bbox);%显示视频帧到屏幕depVideoPlayer (videoFrame);写入帧到最后的视频文件writeVideo (myVideo videoFrame);暂停(1 / videoFileReader.FrameRate);结束关上(myVideo)
你可以下载该代码在MATLAB中央。
计算机视觉的视频处理算法
使用时间相关性进行视频处理的MATLAB算法基于“状态”的概念,即算法处理当前视频帧,但也使用前一帧来确定其输出。这对目标跟踪算法来说至关重要,因为它依赖于预先的信息来通知未来的动作。跟踪的一个常见例子是KLT算法,它跟踪对象中的各个点,以跟踪对象的位置。
视频处理算法的开发者也可以使用特定的视觉算法计算机视觉系统工具箱.这些算法可以让你以一种快速和高效的内存方式阅读和观看高分辨率视频。工具箱还包括用于三维点云处理、立体视觉、目标检测、跟踪和识别等应用的算法。