改进视觉搜索任务
1.任务开始时,在屏幕正中呈现“+”,维持1
秒,随后呈现任务刺激,刺激内容和位置随机
2.用户移动鼠标,当鼠标移到目标刺激时,程序
记录下用户反应时间,任务刺激消失,屏幕正中呈现”+”
3.重复1-2,20次提示
root.after(time,function):程序在time指定时间段后运行function函数。能今晚搞定追加20
import tkinter
import random
root = tkinter.Tk()
# 在屏幕中间显示“+”
lbl = tkinter.Label(root, text="+")
lbl.pack()
# 在1秒后显示任务刺激
def show_stimulus():
# 随机生成刺激内容和位置
stimulus = random.choice(["A", "B", "C"])
x = random.randint(0, root.winfo_width())
y = random.randint(0, root.winfo_height())
# 在随机位置显示刺激
lbl.config(text=stimulus, x=x, y=y)
# 记录用户反应时间
start = time.time()
# 当鼠标移到目标刺激时,计算用户反应时间
def on_click(event):
end = time.time()
reaction_time = end - start
print(reaction_time)
# 显示“+”
lbl.config(text="+")
# 绑定鼠标点击事件
root.bind("<Button-1>", on_click)
root.after(1000, show_stimulus)
# 重复20次
for i in range(20):
root.after(1000, show_stimulus)
root.mainloop()
Python计算机视觉第七章 图像搜索
https://blog.csdn.net/m0_50882524/article/details/126851742
望采纳,下面是对应的代码
# 导入必要的模块
import tkinter as tk
import random
# 设置窗口大小
window_width = 500
window_height = 500
# 设置“+”号初始位置
plus_x = window_width / 2
plus_y = window_height / 2
# 设置目标刺激初始位置
target_x = random.randint(0, window_width)
target_y = random.randint(0, window_height)
# 设置试次数
num_trials = 20
# 设置每次试次持续时间(秒)
trial_duration = 1
# 创建主窗口
root = tk.Tk()
root.title("改进的视觉搜索任务")
# 创建一个画布
canvas = tk.Canvas(root, width=window_width, height=window_height)
canvas.pack()
# 函数:在屏幕中央绘制“+”号
def draw_plus():
global plus_x, plus_y
canvas.create_text(plus_x, plus_y, text="+", font=("Arial", 32))
# 函数:在屏幕上随机位置绘制目标刺激
def draw_target():
global target_x, target_y
canvas.create_rectangle(target_x, target_y, target_x + 20, target_y + 20, fill="red")
# 函数:开始下一次试次
def next_trial():
global trial_num, reaction_times
# 清屏
canvas.delete("all")
# 如果已完成所有试次,结束任务
if trial_num == num_trials:
root.after_cancel(trial_timer)
root.destroy()
return
# 绘制“+”号,持续1秒
draw_plus()
root.after(1000, draw_target)
# 开始当前试次的计时器
trial_start_time = time.time()
# 函数:记录点击目标刺激时的反应时间
def on_click(event):
nonlocal trial_start_time
reaction_times.append(time.time() - trial_start_time)
canvas.delete("all")
draw_plus()
trial_timer = root.after(1000, next_trial)
# 将 on_click 函数与鼠标左键点击事件绑定
canvas.bind("<Button-1>", on_click)
# 开始第一次试次
trial_num = 1
reaction_times = []
draw_plus()
trial_timer = root.after(1000, next_trial)
# 开始主循环
root.mainloop()
直接下载Anaconda,傻瓜式安装后直接打开Spyder,把之前回答的代码直接复制粘贴到这个编辑器里,按F5运行就好了。