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