使用Matlab读取剪切的AVI文件

时间:2013-03-05 13:53:59

标签: matlab avi

我正在尝试将一个AVI文件读入Matlab,但是我遇到了剪切帧的问题。我正在使用Mathworks for VideoReader中的Matlab代码,只进行了一些小修改。

xyloObj = VideoReader('video.avi');

nFrames = xyloObj.NumberOfFrames;
vidHeight = xyloObj.Height;
vidWidth = xyloObj.Width;

% Preallocate movie structure.
mov(1:nFrames) = ...
    struct('cdata', zeros(vidHeight, vidWidth, 3, 'uint8'),...
           'colormap', []);

% Read one frame at a time.
for k = 1 : nFrames
    mov(k).cdata = read(xyloObj, k);
end

imagesc(mov(1).cdata)
colormap gray

以下是视频中的单帧。有没有人遇到过这个?该视频由PI Connect infrared camera制作。该视频显示在VLC中播放时没有剪切。我知道我可以通过简单的图像处理操作纠正剪切,但我宁愿完全避免这个问题。提前致谢。 images

1 个答案:

答案 0 :(得分:0)

我通过使用Virtual Dub将文件从YUY2转换为RGB24来解决问题。新文件大50%,但Matlab可以正确读取它而不会剪切。