1

我正在尝试使用心理调整方法进行一个简单的实验,以便观察者使用左右键改变多边形的亮度(或对比度)。我不知道我应该使用什么功能以及如何使用。

编辑:我正在使用生成器。

4

1 回答 1

0

如果您使用的是代码,只需执行以下操作:

# Set things up
from psychopy import visual, event
win = visual.Window()
polygon = visual.Polygon(win, fillColor='black')

# Keep doing this until escape key is pressed
while True:
    # React to responses by updating contrast
    key = event.waitKeys(keyList=['left', 'right', 'escape'])[0]
    if key == 'left' and not polygon.contrast < 0.1:  # if left key is pressed, change contrast if wouldn't exceed the possible values
        polygon.contrast -= 0.1
    elif key == 'right' and not polygon.contrast > 0.9:  # same here...
        polygon.contrast += 0.1
    elif key == 'escape':
        break  # stop the while loop

    # Display stimulus with updated attributes.
    polygon.draw()
    win.flip()

如果您使用的是 Builder,则在其他刺激下插入一个代码组件,并将此稍作修改的代码粘贴到“每一帧”选项卡中:

# React to responses by updating contrast
key = event.getKeys(keyList=['left', 'right'])
if key and key[0] == 'left' and not polygon.contrast < 0.1:  # if left key is pressed, change contrast if wouldn't exceed the possible values
    polygon.contrast -= 0.1
elif key and key[0] == 'right' and not polygon.contrast > 0.9:  # same here...
    polygon.contrast += 0.1

未经测试 - 看看它是否有效。

要更改亮度,您可能需要使用亮度为自变量的 DKL 颜色空间。请参阅有关 colorspaces 的psychopy 文档。你可以这样做:

polygon = visual.Polygon(win, colorSpace='dkl', fillColor=[45, 180, 1], lineColor=None)
polygon.fillColor += [5, 0, 0]  # increase luminance with constant hue and saturation
polygon.fillColor -= [5, 0, 0]  # decrease luminance....
于 2015-05-12T19:43:17.137 回答