美文网首页心理学研究方法
PsychoPy入门_01_文字和图片的呈现

PsychoPy入门_01_文字和图片的呈现

作者: ChZ_CC | 来源:发表于2016-10-14 17:45 被阅读4723次

    不靠谱PsychoPy入门教程目录:

    1. PsychoPy入门00安装

    2. PsychoPy入门01文字和图片的呈现

    3. PsychoPy入门02按键等待&反应时

    4. PsychoPy入门03视频和音频的呈现

    5. PsychoPy入门04等级评定

    6. PsychoPy入门05循环和随机

    7. PsychoPy入门06数据记录

    8. PsychoPy入门07鼠标的使用

    9. 用PsychoPy做视觉搜索任务实验


    官网手册:http://www.psychopy.org/api/api.html

    开始

    创建一个新文件。在程序的开头需要放下面两行语句:

    #!/usr/bin/env python2
    # -*- coding: utf-8 -*-
    

    在PsychoPy里除了开头这两行,#号之后的内容都是注释。

    第一行是必须的,指明你python解释器的版本。psychopy安装之后自带的是2.7的。

    第二行是一个编码声明。如果你只处理英文字符的话,这行是不需要的。但是如果代码里有中文或者其他字符,就必须要有这行才行。

    然后载入需要的库。我们要呈现东西,肯定有visual。core里是一些最基本函数,控制时间,退出等等。

    from psychopy import visual, core
    

    这次有这两个就够了。

    创建窗口

    我们想要呈现文字/图片等等这些刺激,首先要创建一个窗口/屏幕。好比有块黑板才好写字。用visual.Window,注意大小写。

    win = visual.Window(size = (1000,600), color = (-1,-1,-1), fullscr = False )
    

    Window包含了许多参数,最常用的是这三个:

    • size:屏幕的大小。随便设。如果全屏的话,需要设置成跟你电脑屏幕分辨率相同的值。
    • color:屏幕颜色。(0,0,0)这里是rgb模式,取值范围是[-1,1],全为-1的话是纯黑色,全为1是白色。你可以随便改一下玩儿。
    • 设置颜色有很多种方式,直接用颜色名也行,比如color='red'。html颜色名基本上都可以用,W3schoo的html颜色名
    • fullscr:全屏,默认值为False不全屏,True为全屏。
    • 还有其他很多参数可以设置,比如屏幕的位置/pos,单位/units,等等,我这里就用默认值了。(参见官网手册:Window

    有了window之后,运行一下程序的话会跳出一个黑屏幕来。因为之后没有东西呈现,它马上消失了。

    文字刺激

    下面创建两个文字的刺激

    text_1 = visual.TextStim(win, text = u'Hello, Psycho!',
                                   height = 0.1,
                                   pos = (0.0,0.2),
                                   color = 'pink',
                                   bold = True,
                                   italic = True)
    text_2 = visual.TextStim(win, text = u'',
                                   height = 0.1,
                                   pos = (0.0,-0.1),
                                   color = 'violet',
                                   bold = True,
                                   italic = False)
    text_2.text = u'你好烦,心理学!'
    

    同样的,括号里是文字刺激TextStim的参数。

    • win,呈现的屏幕。就是我们之前创建的那个叫做win的window。
    • text,文字内容。u' ',前面加u表示unicode编码,放中文的话一定要叫u,英文无所谓。(注,在python3里默认Unicode编码,不需要写这个u' ',但psychopy用的2.7的版本,必须加。)
    • pos,位置。以屏幕中心(0,0)为坐标中心建一个坐标轴,(x,y)相当于坐标,右/上为正值,左/下为负值。取值范围最好在(-1,1)中间,相当于占位的百分比(我们现在用的单位是'norm',注意改变单位的话这些数值的含义也会变)。
    • color,颜色。
    • bold/italic,是字体的格式,加粗/倾斜。
    • 更多参数设置见官网手册:TextStimu
      文字可以在创建的时候放进去,也可以之后用stimName.text的形式重新赋值。其他参数也可以用同样的方法更改。比如text_1.color = 'green'。

    创建完了只是放在这里,要把它呈现的屏幕上需要下面两行语句。

    text_1.draw()
    text_2.draw()
    win.flip()
    core.wait(3)
    

    stimName.draw()呈现刺激。win.flip()刷新屏幕,不然屏幕上的内容不更新是看不到的。然后程序保持这个状态停留3秒,core.wait(3),括号里是秒数,可以是整数也可以是小数。

    注:用core.wait(n)控制时间是比较粗糙的,误差比较大,用来呈现个指导语或者不考虑时间因素的东西还可以。如果是需要严格控制时间的刺激呈现,就要用其他方法。之后我会介绍core.clock()的使用。

    之后关闭窗口,退出程序。

    win.close()
    core.quit()
    

    好的,保存,运行一下。会出现这样一个东西↓。

    程序截图1

    图片刺激

    官网手册:ImageStim

    接下来我们呈现个图片,代码放在win.close()前面。

    pic = visual.ImageStim(win, image = 'test_l.JPG')
    pic.draw()
    win.flip()
    core.wait(2)
    

    image里放的是图片的名字,把图片和脚本放在同一个文件夹里,也就是你现在编辑的这个程序的存放位置。如果不在一块的话需要加上路径。

    注意图片名要加上扩展名。

    呈现方式和文字的一样,参数需要的少一些。这里我就直接把原图放上来了。其实也可以设置图像的大小/透明度/形状等等。个人觉得还是提前把图片尺寸调整好了,省得在程序里设置,麻烦。

    运行之后是这样的。

    程序截图2

    你随便放一张就行,保证名字一致就行。


    这是完整的代码:

    #!/usr/bin/env python2
    # -*- coding: utf-8 -*-
    
    from psychopy import visual, core
    
    win = visual.Window(fullscr = False, size = (1000,600), color = (-1,-1,-1))
    
    text_1 = visual.TextStim(win, text = u'Hello, Psycho!',
                               height = 0.1,
                               pos = (0.0,0.2),
                               color = 'pink',
                               bold = True,
                               italic = True)
    text_2 = visual.TextStim(win, text = u'',
                               height = 0.1,
                               pos = (0.0,-0.1),
                               color = 'violet',
                               bold = True,
                               italic = False)
    text_2.text = u'你好烦,心理学!'
    
    text_1.draw()
    text_2.draw()
    win.flip()
    core.wait(2)
    
    pic = visual.ImageStim(win, image = 'test_l.JPG')
    
    pic.image = 'test_s.jpg'
    pic.draw()
    win.flip()
    core.wait(2)
    
    win.close()
    core.quit()
    

    有什么疑问或建议,请在下方评论。

    相关文章

      网友评论

        本文标题:PsychoPy入门_01_文字和图片的呈现

        本文链接:https://www.haomeiwen.com/subject/jftnyttx.html