前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PsychoPy文字刺激、图片刺激和光栅刺激

PsychoPy文字刺激、图片刺激和光栅刺激

作者头像
脑机接口社区
发布2020-06-30 15:29:39
3.1K1
发布2020-06-30 15:29:39
举报
文章被收录于专栏:脑机接口脑机接口

PsychoPy


正如在前面介绍的,PsychoPy有两个视图:Builder视图和Coder视图。Builder视图具有非常友好的用户界面,用户无需过多的编程知识即可通过简单的拖拽和点击就可完成一些实验程序;Coder视图只提供了代码编辑器,可以在Coder视图编写代码来实现实验程序。

PsychoPy安装教程:PsychoPy安装与测试案例

这篇主要介绍三种刺激:文字刺激、图片刺激、位图刺激

文字刺激


1.打开Coder视图

如下图在Coder编辑器中,编写代码。

代码语言:javascript
复制
# -*- 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()

图片刺激


代码语言:javascript
复制
# -*- 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()

如上面的结果提示,通过按空格键退出窗口舞台。

光栅刺激


代码语言:javascript
复制
# -*- 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()
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 脑机接口社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档