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

PsychoPy

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

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

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

文字刺激

1.打开Coder视图

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

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

Copyright © 2088 02年世界杯中国队_1930年乌拉圭世界杯 - n360l.com All Rights Reserved.
友情链接