所以我试图在 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)
我发现这个和这个看起来很接近我想要的(尤其是第二个),但是我对 java 的了解还不够,无法从第一个制作电影,而第二个没有工作,因为它声称图像分辨率不是 1920x1080 - 我认为这是因为 MATLAB 在函数有机会“得到它”之前对其进行了缩放。
我可以通过保存循环的每次迭代中的图像并从中制作一个 .gif 来使其工作,但我不确定如何让它全屏显示,这样会更好能够用 VLC 控制播放。
还有一些方法可以用正常的情节做到这一点:
set(hfig,'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
但这仅适用于使用绘图命令创建的对象,而不适用于 image/imshow。
编辑:好的,我放弃了,只是制作了一个 .gif,它可以在 chrome 的全屏模式下工作,但是解决这个问题仍然很好,因为知道如何做似乎是一件相当有用的事情。