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

不靠谱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()

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,451评论 25 707
  • 原文:https://github.com/electron/electron/blob/master/docs/...
    Shmily落墨阅读 18,992评论 1 5
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,019评论 4 62
  • 幸福路人春风20170818第76天 今天早上我起床正在洗脸,夫君起床,拿出充电器开始充电,并且对着我说:“我刚冲...
    春风7861阅读 242评论 0 0
  • python基础之读文件
    vanhukset阅读 371评论 0 0