这是我第一次使用这个软件来创建实验。
对于我的实验,我并排呈现两个图像,理想情况下我想在全屏幕中运行此实验但是当我将值设置为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)`
此外,在我的实验中,其中一个图像将被轻微压缩或拉伸。然后参与者将不得不选择更胖的脸。这已经设置好了,当在一个窗口中运行时,图像显示正常,当它们被拉伸以适合显示器尺寸时,它只是处于全屏模式。
默认情况下,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
和qazxswpoi,因为这是这些参数的默认值。