2014-11-11 3 views
1

나는이 모든 곳의 답을 찾기 위해 노력했지만 지금까지 행운이 없었습니다. 아시다시피, 저는 for 루프를 사용하여 단일 gif에 이미지를 추가하여 gif 파일을 생성하는 문제에 봉착했습니다. 그러나 얼마 후, imwrite는 실제로 이미지를 gif 파일에 추가하는 것을 멈추는 것처럼 보입니다. 대신에 공백이 추가됩니다.imwrite() (특정 지점을 넘어서는 흰색 이미지)를 사용하여 MATLAB gif 이미지에 추가

파일 자체는 적절한 수의 이미지가 포함될 수있을만큼 충분히 큽니다.하지만 파일을 열고 재생할 때 특정 지점을 벗어나면 흰색 이미지 만 나타납니다. 나는 for 루프 자체와 아무런 관련이 없다는 것을 확실히 알고있다 - 각 루프 반복을 위해 작업하고있는 이미지 파일을 출력해야한다. 파일 이름은 모두 정확합니다.

이미지 수가 일정한 것을 포기한 것 같습니다. 따라서 최대 숫자가 있다고 생각합니까? 나는 50 개가 넘는 프레임을 가지고 있습니다.

코드 조각 나는 일하고 있어요 :

delay_time = 0; 

% for each frequency, read in the iso-contour and stitch to the plots 
% together to make a gif 
for counter_frequency = freq_min:freq_inc:freq_max 
    im_in = imread(['2D FFT, ' num2str(counter_frequency, '%3.2f') ' GHz.png'], 'png'); 
    [imind,cm] = rgb2ind(im_in,256); 
    disp([num2str(counter_frequency)]); 
    if counter_frequency == freq_min 
     imwrite(imind,cm,[directory.plot.iso_plots '\Iso-frequency Animation.gif'],'gif','DelayTime',delay_time,'LoopCount',inf); 
    else 
     imwrite(imind,cm,[directory.plot.iso_plots '\Iso-frequency Animation.gif'],'gif','DelayTime',delay_time,'WriteMode','append'); 
    end; 
end; 
+0

정말 이상합니다 .... 파일을 만들기 전에 각 반복마다 이미지가 어떻게 표시되는지 보여 줬습니까? 전에이 문제를 본 적이 없습니다. 코드가 작동해야하고 몇 분 동안 봤습니다. – rayryeng

답변

2

그것을 해결! 결국 내 코드에는 아무런 문제가 없었습니다. gif를보기 위해 사용했던 프로그램이었습니다! 인터넷 익스플로러는 나쁜 생각입니다. 항상. 나는 그것을 잊었다는 것을 믿을 수 없다! Chrome에 코딩을 사용하고있는 컴퓨터를 찾았 으면 Chrome에서 호기심으로 열었습니다. 괜찮 았습니다.

젠장, IE!

+0

다행 니가 해결 했어! 나는이 질문을 가장 좋아할 것이다. MATLAB에서 애니메이션 GIF를 만드는 방법에 대한 훌륭한 예. 감사! – rayryeng

관련 문제