小能豆

Psychopy:一次性重新调整所有视觉图像对象的比例

py

我正在 Psychopy 1.85.1 中实施一项实验。

该任务将在 1920 x 1080 显示器(即 16:9 的宽高比)上进行管理。

我不会改变每个单独的视觉图像对象的大小,而是使用以下命令:

some_obj.size *= [0.6,1]

我宁愿使用一行代码,普遍改变所有视觉对象的尺寸参数,以解决 16:9 比例造成的扭曲。

有什么建议吗?

编辑:下面是 psychopy 默认 4:3 比例导致的拉伸示例和相应图像。左侧是图像大小不变时发生的情况,右侧是图像大小如上所示改变时发生的情况。

1.png

实验的窗口由以下项创建:

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]

阅读 8

收藏
2025-01-11

共1个答案

小能豆

正如 Mike 在评论中指出的那样,如果要保持纵横比,请在窗口中height使用、pix(像素)或deg作为单位,例如。请注意,对于,您必须在监控中心输入一些距离测量值才能使其工作。另外,请注意,您必须重新调整脚本中的数字。例如,0.5 个“标准”的半径很大,而 0.5 个像素的半径几乎不能覆盖一个像素。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属性的刺激有效。

2025-01-11