Итак, я пытаюсь создать фильм на MATLAB, который содержит несколько серых кругов в определенных местах, причем один из кругов в процессе его перехода от черного к белому. Однако я не могу заставить его только записывать изображения по всему экрану с правильным разрешением вместо того, чтобы показывать их в окне рисунка. Вот что у меня есть на данный момент:
h=ones(1080,1920);
trap1=.5*circ(1920,1080,55,532,534,2);
trap2=.5*circ(1920,1080,55,528,798,2);
pcf=circ(1920,1080,18,1520,504,2); %Makes the circles
for ii=1:256
pcfl=pcf*(ii-1)/255; %Steps through greylevels
m=h.*(trap1+trap2+pcfl); %Make everything but the circles black
hfig=imshow(m); %Display image
colormap('gray') %This is probably unnecessary
mov(ii)=getframe(gcf);
end
myVideo = VideoWriter('trapmov.avi');
open(myVideo);
writeVideo(myVideo,mov)
close(myVideo)
Я нашел это и this, которые кажутся мне близкими к тому, что я хочу (особенно второй), но я не знаю достаточно о java, чтобы иметь возможность сделать фильм из первого, а второй не работает, потому что он утверждает, что разрешение изображения не 1920x1080 - я думаю, это потому, что MATLAB масштабирует его до того, как функция имеет шанс ' как бы добраться до него ».
Я мог бы заставить его работать, просто сохраняя изображение с каждой итерации цикла и создавая из него .gif, но я не уверен, как мне заставить его отображать полноэкранный режим, и было бы намного приятнее быть возможность управлять воспроизведением с помощью VLC.
Также есть способы сделать это с обычными графиками:
set(hfig,'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
но это работает только с объектами, созданными с помощью команд построения, а не image / imshow.
РЕДАКТИРОВАТЬ: ОК, я сдался и просто создал .gif, и он работает в полноэкранном режиме Chrome, но решение этого все равно было бы неплохим, поскольку это кажется довольно полезным, чтобы знать, как это сделать.