PsychoPy文字刺激、图片刺激和光栅刺激
更多技术干货第一时间送达
PsychoPy
正如在前面介绍的,PsychoPy有两个视图:Builder视图和Coder视图。Builder视图具有非常友好的用户界面,用户无需过多的编程知识即可通过简单的拖拽和点击就可完成一些实验程序;Coder视图只提供了代码编辑器,可以在Coder视图编写代码来实现实验程序。
PsychoPy安装教程:PsychoPy安装与测试案例
这篇主要介绍三种刺激:文字刺激、图片刺激、位图刺激
文字刺激
1.打开Coder视图
如下图在Coder编辑器中,编写代码。
# -*- coding: utf-8 -*-
#导入工具包
from psychopy import visual, core
# 创建刺激呈现窗口,该窗口就是所有刺激的展示舞台
win = visual.Window(size = (400,300), color = (-1,-1,-1),
fullscr = False )
"""
创建两个文本刺激
分别为text1和text2
"""
text1 = visual.TextStim(win, text = u'你好心理学!',
height = 0.1,
pos = (0.0,0.4),
color = 'pink',
bold = True,
italic = True)
text2 = visual.TextStim(win, text = u'',
height = 0.1,
pos = (0.0,0.7),
color = 'violet',
bold = True,
italic = False)
text2.text = u'心理学!'
"""
draw()方法可以把文本绘制到缓存
"""
text1.draw()
text2.draw()
#调用win的flip()方法,将所有缓存区的刺激效果展现到舞台
win.flip()
"""
等待5秒,舞台显示可以持续5s
"""
core.wait(5)
win.close()
图片刺激
# -*- coding: utf-8 -*-
#导入工具包
from psychopy.visual import Window, ImageStim, TextStim
from psychopy import event
import random
#创建窗口
win = Window()
"""
设置图片参数,
image:设置图片路径,图片名[注意后缀]
"""
pic = ImageStim(win,image='example.png')
#向缓冲区里绘制图片
pic.draw()
"""
创建1个文本刺激
为text1
"""
text1 = TextStim(win, text = u'按空格退出',
color = 'blue',
pos = [0,30], units = 'pix')
#向缓冲区里绘制文本
text1.draw()
#调用win的flip()方法,将所有缓存区的刺激效果展现到舞台
win.flip()
while 'space' not in event.getKeys():
pass
win.close()
如上面的结果提示,通过按空格键退出窗口舞台。
光栅刺激
# -*- coding: utf-8 -*-
#导入工具包
import numpy
from psychopy.visual import Window, GratingStim
from psychopy.core import wait
#设置窗口大小
DISPSIZE = (600, 600)
"""
创建窗口,
设置窗口单位pix,
设置窗口显示为非全屏
"""
disp = Window(size=DISPSIZE, units='pix', fullscr=False)
"""
GratingStim用于绘制任意位图的光栅刺激对象,该位图可以在任意维度重复(循环)
tex 设置光栅纹理作为刺激对象
mask 设置蒙版
sf 设置光栅纹理的空间频率
size 设置刺激单位的大小(宽度,高度)
"""
gabor = GratingStim(disp, tex='sin', mask='gauss', sf=0.05, size=200)
#生成噪声
noise = (numpy.random.rand(64, 64)*2)-1
noisepatch = GratingStim(disp, tex=noise, mask='gauss',size=200)
#将刺激对象绘制到缓冲区
gabor.draw()
#将所有缓存区的刺激效果展现到舞台
disp.flip()
wait(3)
noisepatch.draw()
disp.flip()
wait(5)
disp.close()
更多阅读
EMD算法原理与实现
EEGNet: 神经网络应用于脑电信号
赞 (0)