matlab中的视频到帧

时间:2015-01-19 09:13:21

标签: matlab image-processing video-processing

我有一个从视频中提取帧的代码。代码如下:

addpath('E:\project\coding\wrk_ongoing\Images');
obj = mmreader('ace.mp4');
vid = read(obj);
frames = obj.NumberOfFrames; %Read the Total number of frames and displyed in     command window 
  ST='.jpg';

cd frames
for x = 1:5         %  extracting the 5 frames from video
  Sx=num2str(x);
  Strc=strcat(Sx,ST);
  Vid=vid(:,:,:,x);
  imwrite(Vid,Strc);
end
cd ..

此代码仅适用于某些视频。我测试了.mp4扩展名的不同视频。其中一些效果很好。但输入视频显示错误

  
    

???使用==>时出错vid2frame at 6     初始化失败。 (没有找到中间过滤器的组合来制作     连接。)

  

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

该错误是由于您的视频文件本身造成的。从它的外观来看,MATLAB读取该文件有一个问题,可能是因为文件编码错误或者视频是用MATLAB不支持的编解码器编码的,或者计算机上不存在。有关类似的问题,请参阅此问题:no combination of intermediate filters could be found

这与MATLAB无关,但错误就是您遇到的错误,答案是以与您的操作系统和MATLAB兼容的格式重新编码视频文件。


祝你好运!