在Matlab中加速视频处理

在Matlab中加速视频处理,matlab,memory-management,video-processing,Matlab,Memory Management,Video Processing,我正在使用Matlab进行位置跟踪应用,其中位置是从~20分钟的.avi文件中逐帧提取的。现在处理20分钟的视频大约需要1小时。令人恼火的是,实际的算法计算相当快。瓶颈只是将.avi帧加载到Matlab中,我们一次加载20帧。这是我们的伪代码: vidobj = VideoReader(vidFile); frmStep=20; %# of frames to load at a time for k=1:frmStep:(numFrames-frmStep+1) f = read(vid

我正在使用Matlab进行位置跟踪应用,其中位置是从~20分钟的.avi文件中逐帧提取的。现在处理20分钟的视频大约需要1小时。令人恼火的是,实际的算法计算相当快。瓶颈只是将.avi帧加载到Matlab中,我们一次加载20帧。这是我们的伪代码:

vidobj = VideoReader(vidFile);
frmStep=20; %# of frames to load at a time
for k=1:frmStep:(numFrames-frmStep+1)
   f = read(vidobj, [k (k+frmStep-1)]); 
   %%Do video processing
end

我想知道是否有任何方法可以更快地加载这个程序,或者对非常长的计算时间做些什么……

多年来,我尝试了一些替代Matlab原生视频处理程序的方法,但我从未对它们进行过分析,所以我无法告诉您任何关于加速的信息

我广泛使用的第一种选择是。此函数使用ffmpeg执行实际的帧抓取


目前我在mexopencv中使用VideoCapture类。您需要安装opencv才能进行编译。我还设法在opencv3中编译了大部分Matlab绑定(在MacOSX上),这也为您提供了一个视频捕获类

这些年来,我尝试了几种替代Matlab原生视频处理程序的方法,但我从未对它们进行过分析,因此我无法告诉您任何有关速度的信息

我广泛使用的第一种选择是。此函数使用ffmpeg执行实际的帧抓取

目前我在mexopencv中使用VideoCapture类。您需要安装opencv才能进行编译。我还设法在opencv3中编译了大部分Matlab绑定(在MacOSX上),这也为您提供了一个视频捕获类