我正在 Psychopy 1.85.1 中实施一项实验。
该任务将在 1920 x 1080 显示器(即 16:9 的宽高比)上进行管理。
我不会改变每个单独的视觉图像对象的大小,而是使用以下命令:
some_obj.size *= [0.6,1]
我宁愿使用一行代码,普遍改变所有视觉对象的尺寸参数,以解决 16:9 比例造成的扭曲。
有什么建议吗?
编辑:下面是 psychopy 默认 4:3 比例导致的拉伸示例和相应图像。左侧是图像大小不变时发生的情况,右侧是图像大小如上所示改变时发生的情况。
实验的窗口由以下项创建:
myWin = visual.Window(size = (1200,675), fullscr = False, winType = 'pyglet', color = 'white')
如上所示的圆形图像由以下人员创建:
testCircleL = visual.Circle(myWin, fillColor = 'lightskyblue', lineColor = 'lightskyblue', units = 'norm', radius = 0.5, pos=(-.50,0.15)) testCircleR = visual.Circle(myWin, fillColor = 'lightskyblue', lineColor = 'lightskyblue', radius = 0.5, pos=(0.5,0.15)); testCircleR.size *= [0.6,1]
正如 Mike 在评论中指出的那样,如果要保持纵横比,请在窗口中height使用、pix(像素)或deg作为单位,例如。请注意,对于,您必须在监控中心输入一些距离测量值才能使其工作。另外,请注意,您必须重新调整脚本中的数字。例如,0.5 个“标准”的半径很大,而 0.5 个像素的半径几乎不能覆盖一个像素。myWin = visual.Window(units='pix')``deg
height
pix
deg
myWin = visual.Window(units='pix')``deg
如果你真的想同时扩展许多刺激,你可能会循环进行:
# Set up many visual objects stim1 = visual.Circle(myWin) stim2 = visual.ImageStim(myWin) stim3 = visual.GratingStim(myWin) # Scale multiple visual objects for this_stim in [stim1, stim2, stim3]: this_stim.size *= [0.6, 1]
当然,这只对具有size属性的刺激有效。
size