2014-11-24 5 views
0

jpg 이미지가있는 폴더가 있고 동영상으로 변환하고 싶지만 동영상에 축이 있어야합니다 (이미지에는 축이 없습니다). .my 이미지는 grayscale.i입니다. 뭔가를했지만 뭔가 잘못되었습니다. 커맨드 무비 (F, 1); 영화를 보여 주지만 축은 영화에서 수정되지 않습니다. 또한 저장 한 avi는 축이없는 영화 (이미지의 모션) 만 보여줍니다. 이것은 내 코드입니다 :이미지에서 축이있는 동영상 만들기 matlab

vidObj = VideoWriter('sample.avi'); 
open(vidObj); 
for num_frame=1:40 
    %find filename of the image 
    filename = sprintf('%s_%d.jpg','new_image/sample_image',num_frame); 
    cmap = colormap(gray); 
    res = grs2rgb(filename,cmap);%convert image from grayscale to rgb 
    F(num_frame)=im2frame(res); 
end 
imshow('new_image/sample_image_1.jpg');%show the first image 
set(gca,'FontSize',14); 
xlabel('Lateral distance [mm]'); 
ylabel('Axial distance [mm]'); 
xlim([-50 50]); 
ylim([20 105]); 
axis([-50 50 20 105]); 
axis ('on'); 
movie(F,1); 
writeVideo(vidObj,F); 
close(vidObj); 

무엇이 실수입니까 ??

+0

당신을 가지고 속도에 대한 더 나은 첫 번째 반복에서 F을 미리 할당하는 것입니다 시도한 [getFrame] (http://uk.mathworks.com/help/matlab/ref/getframe.html?nocookie=true)? – kkuilla

답변

2

문제는 축 설정이 MATLAB에서만 사용되고 비디오와 함께 저장되지 않는다는 것입니다. 축 설정을 저장하려면 getframe을 사용하여 현재 플롯의 새 프레임을 생성 할 수 있습니다. 나는 다음과 같은 제안 :

vidObj = VideoWriter('sample.avi'); 
open(vidObj); 

for num_frame=40:-1:1 
    % load image 
    filename = sprintf('%s_%d.jpg','new_image/sample_image',num_frame); 
    cmap = colormap(gray); 
    res = grs2rgb(filename,cmap); 

    % create plot 
    imshow(res); 
    set(gca,'FontSize',14); 
    xlabel('Lateral distance [mm]'); 
    ylabel('Axial distance [mm]'); 
    xlim([-50 50]); 
    ylim([20 105]); 
    axis([-50 50 20 105]); 
    axis ('on'); 

    % save current plot as movie frame 
    F(num_frame) = getframe(gcf); 
end 

writeVideo(vidObj,F); 
close(vidObj); 

참고 for num_frame=40:-1:1 : 이것은 (MATLAB은 각 반복에서 변수를 확장 할 필요가 없습니다)

관련 문제