纯python代码实现的,代码并不复杂,主要就是熟悉一个psychopy这个库的函数使用,前面都是psychopy的库函数使用,后面就是将收集到的数据保存为excel表格。
在屏幕中左右各显示一张图像,并显示提示词:要求用户选择一张图像,并根据选择点击键盘按键N或M(此处可以设置为其它键盘按键)。等待用户点击键盘,输出根据键盘判定点击的图像是哪一张,并输出从显示图像到用户点击键盘的时间。请注意图像的选择,避免在显示中图像的压缩变形。
效果如下
使用visual.Window创建一个可视化窗口,用visual.ImageStim显示两张图片,一张放置在窗口左边,另一张放置在窗口右边,用visual.TextStim在窗口中间显示提示文字,如下图所示,为了避免图像显示的压缩变形,在显示的时候规定好显示的size。
然后在显示图片之后开始记录时间,同时监听键盘输入,当键盘输入N或者M时结束记录时间并关闭窗口,输出用户选择的图像和从显示图像到用户敲击键盘的时间,如下图所示。


并将数据保存为excel表格,每次测试都将新的数据追加上去,测试30次,根据用户选择的图像绘制的柱状图如下图所示,可见二者大致相同。

代码如下
from psychopy import visual, event, core import pandas as pd # 初始化窗口和图像 win = visual.Window(size=(1000, 618), monitor='testMonitor', units='pix') left_image = visual.ImageStim(win, image="C++.jfif", pos=(-300, 0), size=(400, 400)) right_image = visual.ImageStim(win, image="Java.jfif", pos=(300, 0), size=(400, 400)) prompt_text = visual.TextStim(win, text="请选择一张图像\n按N键选择左图像\n按M键选择右图像", pos=(0, 0)) # 绘制图像和提示词 left_image.draw() right_image.draw() prompt_text.draw() win.flip() # 等待用户按键 response = None rt_clock = core.Clock() while True: keys = event.getKeys() if 'n' in keys: response = "左图像" break elif 'm' in keys: response = "右图像" break # 输出结果 rt = rt_clock.getTime() print("用户选择了:", response) print("反应时间:", rt) # 保存数据到表格 data = {'选择': [response], '反应时间': [rt]} df = pd.DataFrame(data) try: existing_df = pd.read_excel('data.xlsx') # 读取已存在的表格数据 newDF = pd.concat([df, existing_df], ignore_index=True) newDF.to_excel('data.xlsx', index=False) except FileNotFoundError: df.to_excel('data.xlsx', index=False) # 关闭窗口 win.close()
讯享网
根据记录的时间绘制排列图如下图所示,其中横坐标为时间区间,纵坐标为落在区间中的数目,可知大多数的反应时间是在4秒到7秒之间。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/117404.html