在MATLAB中制作全屏电影

时间:2012-08-24 02:59:47

标签: image matlab fullscreen movie

所以我试图在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)

我发现thisthis似乎与我想要的一样(尤其是第二个),但我不太了解java能够制作电影第一个,第二个不起作用,因为它声称图像分辨率不是1920x1080 - 我认为这是因为MATLAB在函数有机会“实现它”之前对其进行缩放。

我可以通过从循环的每次迭代中保存图像并从中制作.gif来使其工作,但我不确定如何显示全屏显示它会很多能够用VLC控制播放效果更好。

还有一些方法可以用正常情节来做到这一点:

set(hfig,'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);

但这仅适用于使用plot命令创建的对象,而不适用于image / imshow。

编辑:好的我放弃了,只是制作了一个.gif并且它在chrome的全屏模式下工作,但是解决这个问题仍然很好,因为知道该怎么做似乎是一件非常有用的事情。

1 个答案:

答案 0 :(得分:0)

我会使用psychtoolbox来做到这一点。这是一个比Matlab的数字类更合适的起点。该软件包是为Matlab构建的,附带了大量的演示文稿,可以轻松修改以产生刺激。

如果您想要制作电影,可以使用

从psychtoolbox中获取全屏帧
imageArray = Screen('GetImage', wPtr, [0 0 1024 768]);

其中wPtr是指向您创建的窗口的指针,向量是屏幕尺寸。您可以在here

上找到更多详细信息

关于您正在进行行为测试或心理物理学的机会......我真的坚持使用psychtoolbox并忽略VLC。