我正在尝试使用心理调整方法进行一个简单的实验,以便观察者使用左右键改变多边形的亮度(或对比度)。我不知道我应该使用什么功能以及如何使用。
编辑:我正在使用生成器。
我正在尝试使用心理调整方法进行一个简单的实验,以便观察者使用左右键改变多边形的亮度(或对比度)。我不知道我应该使用什么功能以及如何使用。
编辑:我正在使用生成器。
如果您使用的是代码,只需执行以下操作:
# 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....