Причина, по которой getframe
не работает с невидимостью, заключается в том, что он захватывает фактическое содержимое экрана. Вы можете достичь того, что вы хотите, если вы хотите использовать print
вместо:
figure
set(gcf, 'Visible', 'off')
for ...
< draw your animation frame >
print('-r300', '-djpeg', '[directory '/frame_' int2str(k) '.jpg'])
end
Недостатком является то, что ваше сохраненное изображение не будет выглядеть точно так же, как на экране, потому что оно было сгенерировано механизмом печати Matlab. Вы можете настроить его внешний вид, указав разрешение, установив расположение и размер фигуры на «странице» и т. Д. И т. Д.
Кстати, вероятно, не очень хорошая идея создавать новую фигуру для каждого кадра, просто повторно использовать одну и перезаписывать ее содержимое. Кроме того, для постобработки видео, анимированных GIF и т. Д. Было бы лучше использовать формат файла без потерь, например PNG.