2013-03-05 154 views
0

我正在嘗試將一個AVI文件讀入Matlab,但遇到剪切幀的問題。我正在使用Mathworks for VideoReader的Matlab代碼,只做了一些小修改。用Matlab讀取剪切的AVI文件

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

+0

感謝您加入圖片Gaurav! – Eric 2013-03-05 15:44:13

+0

再看一遍這個問題後,我注意到Matlab看到這個文件的視頻壓縮類型爲「YUY2」。 Matlab似乎沒有類型爲「MSVC」的文件存在此問題。我現在正在嘗試將視頻轉換爲MSVC,它對應於Microsoft Video 1格式。 – Eric 2013-03-07 15:12:33

回答

0

我通過使用Virtual Dub將文件從YUY2轉換爲RGB24來解決了這個問題。新文件的大小增加了50%,但Matlab可以正確讀取而不會剪切。