所以我试图在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]);
但这仅适用于使用plot命令创建的对象,而不适用于image / imshow。
编辑:好的我放弃了,只是制作了一个.gif并且它在chrome的全屏模式下工作,但是解决这个问题仍然很好,因为知道该怎么做似乎是一件非常有用的事情。
答案 0 :(得分:0)
我会使用psychtoolbox来做到这一点。这是一个比Matlab的数字类更合适的起点。该软件包是为Matlab构建的,附带了大量的演示文稿,可以轻松修改以产生刺激。
如果您想要制作电影,可以使用
从psychtoolbox中获取全屏帧imageArray = Screen('GetImage', wPtr, [0 0 1024 768]);
其中wPtr是指向您创建的窗口的指针,向量是屏幕尺寸。您可以在here
上找到更多详细信息关于您正在进行行为测试或心理物理学的机会......我真的坚持使用psychtoolbox并忽略VLC。