2013-04-30 6 views
1

나는 VideoWriter를 사용하여 다량의 tiff 이미지를 avi 비디오로 변환하려고합니다. for 루프를 사용하여 이미지를 비디오로 변환하는 데 문제가 있습니다. 지금까지 가지고있는 코드는 다음과 같습니다.tiff 이미지를 avi로 matlab에 변환

function tif2avi 

clc; close all; 
[imagelist,p]=uigetfile('*.tif','MultiSelect','on',... 
    'Select LIST to plot'); pause(0.5); cd(p); 
if ~iscell(imagelist); disp('imagelist not cell'); return; end; 

outputVideo = VideoWriter('0424_rat01.avi'); 
outputVideo.FrameRate = 16; 
outputVideo.Quality = 100; 
open(outputVideo); 

for i=1:numel(imagelist) 
    img=imread(imagelist(i)); 
    writeVideo(outputVideo,img); 
end 

나를 도와 줄 수있는 사람이 있습니까? 문제는 내 for 루프에 있다고 생각합니다.

Warning: No video frames were written to this file. The file may be invalid. 
> In VideoWriter.VideoWriter>VideoWriter.close at 289 
    In VideoWriter.VideoWriter>VideoWriter.delete at 238 
Error using imread>parse_inputs (line 476) 
The filename or url argument must be a string. 

Error in imread (line 335) 
[filename, fmt_s, extraArgs] = parse_inputs(varargin{:}); 

Error in tif2avi (line 14) 
    img=imread(imagelist(i)); 
+0

"문제가 있습니다"에 대해 자세히 설명해 주시겠습니까? – Oleg

+0

코드를 실행하려고하면이 오류가 발생합니다. 경고 :이 파일에는 비디오 프레임이 기록되지 않았습니다. 파일이 유효하지 않을 수 있습니다. VideoWriter.VideoWriter에서 >> imread> parse_inputs를 사용하여 238 오류 (라인 476)에서 VideoWriter.VideoWriter 289 > VideoWriter.delete에서 VideoWriter.close 파일명 또는 URL 인수는 문자열이어야한다. imread (줄 335)에서 오류가 발생했습니다. [filename, fmt_s, extraArgs] = parse_inputs (varargin {:}); tif2avi의 오류 (줄 14) img = imread (imagelist (i)); – zlangley

답변

1

귀하의 imagelist 셀 배열이므로 (대신 일반 괄호) 중괄호를 사용하여 액세스해야합니다 내가 코드를 실행하려고하면

내가 얻을 오류입니다.

img = imread(imagelist{i}); 

img = imread(imagelist(i)); 

를 교체하고 어떻게되는지.

PS,
가장 좋은 것은 not to use i as a variable name in Matlab입니다.

+0

감사합니다. 그것은 트릭을했다. – zlangley