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