这是我第一次使用该软件创建实验。
对于我的实验,我并排呈现两个图像,理想情况下我想在全屏运行此实验但是当我将值设置为true时,图像会变得拉伸。如何修复宽高比以便我可以在不拉伸图像的情况下全屏运行程序?
我正在使用MacBook Pro和PsychoPy编码器。
这是我目前的图片代码:
scale=0.7
faceRGB = visual.ImageStim(win,image='male.jpg',
mask=None,
pos=(0.0,0.0),
size=(scale,scale))
faceRGBINV = visual.ImageStim(win,image='maleInv.jpg',
mask=None,
pos=(0.0,0.0),
size=(scale,scale)`
此外,在我的实验中,其中一个图像将被轻微压缩或拉伸。然后参与者将不得不选择更胖的脸。这已经设置好了,当在一个窗口中运行时,图像显示正常,当它们拉伸到适合显示器尺寸时,它就处于全屏模式。
答案 0 :(得分:1)
默认情况下,PsychoPy使用' norm'作为单位,其大小标准化为窗口尺寸。您可能会遇到以下情况:(1)更改图像的大小;(2)当在默认的800 x 800像素窗口中显示时,图像恰好具有正确的尺寸,但是当您全屏显示时,图像会显得拉伸,因为您的显示器具有另一个长宽比。
如果您不改变图像的大小,PsychoPy会保持正确的宽高比。缩放图像将保留此纵横比,因此这是一个简单的解决方案。例如。在启动ImageStim后添加一行:
scale = 0.7
from psychopy import visual
win = visual.Window(fullscr=True)
faceRGB = visual.ImageStim(win, 'male.jpg')
faceRGB.size *= scale # scale the image relative to initial size
如果您想直接控制尺寸而不是按比例控制尺寸,请参阅用户列表中的this discussion。我提出了以下解决方案。假设您要设置图像大小,以便scale
是沿x- og y轴的最大长度,并按比例缩放另一个轴。用以下内容替换上面的最后一行:
faceRGB.size *= scale / max(faceRGB.size)
乘法保持宽高比如上,右侧是乘法因子以确保scale
。如果您希望将此值应用于最小长度而非最大长度,请将max
更改为min
。
注意:您无需设置pos=(0,0)
和mask=None
,因为这是这些参数的默认值。