文档章节

psychopy coder模式编写心理试验程序 图片呈现和量表评分

z
 zbaigao01
发布于 2015/04/22 00:55
字数 664
阅读 1251
收藏 6

呈现图片

准备一张图片和一个python文件,如下图:

python文件中写如下代码:

# -*- coding: utf-8 -*-
"""
Created on Tue Apr 12 10:31:15 2016

@author: zbg
"""

from psychopy.visual import Window, ImageStim, TextStim
from psychopy import core, event, gui
import random

name='1.png'
win = Window()
stim = ImageStim(win, name)
stim.draw()
texture = TextStim(win, text = u'按空格键退出', pos = [0,30], units = 'pix')
texture.draw()
win.flip()

while 'space' not in event.getKeys():
    pass
win.close()

运行后可以呈现图片

量表评分

编写如下程序可以实现量表评分

# -*- coding: utf-8 -*-
"""
Created on Sun Apr 19 16:50:21 2015

@author: zbg
"""

from psychopy.visual import Window, ImageStim, TextStim
from psychopy import core, event, gui
import random

scales = [
         ('Meaningful1', u"我能理解这幅画的意义"),
         ('Meaningful2', u"我能理解这幅画的主题"),
         ('Unity',       u"这幅画的构图是和谐统一的"),
         ('Complexity',  u"这幅画的构图是复杂的"),
         ('Variety',     u"这幅画构图是多样的"),
         ('Liking',      u"我喜欢这幅画"),
         ('Pleasing',    u"这幅画使我感到愉悦"),
         ('Interesting', u"这幅画能引起我的兴趣。"),
        ]
        

def ShowScale(text):
    def GetMyKey():
        event.clearEvents1('all')
        keys=[]
        while True:
            while len(keys) == 0:
                core.wait(0.1)
                keys=event.getKeys()
            
            if keys[0] in ['1', '2', '3', '4', '5', '6', '7']:
                return keys[0]
            
            keys = []
    
    t =TextStim(win, text ,pos=(0,-0.0))
    t.draw()
    t =TextStim(win, u'1不同意------------------------------7非常同意',pos=(0,-50), units = 'pix')
    t.draw()
    win.flip()
            
    key = GetMyKey()
    
    t =TextStim(win, u'你按下了' + key,pos=(0,-0.2),color = (0 ,1.,0))#反馈
    t.draw()
    win.flip()
    core.wait(0.5)
    
    return key
    
win = Window()

result = {}
for label, text in scales:
    key = ShowScale(text)
    result[label] = key #把结果储存到字典里,后继可以保存到文件里。

win.close()
print result

把两个程序合在一起可以实现呈现图片,然后用量表评分,这里不做赘述。

psychopy自带的量表工具

你也可以使用psychopy自带的量表工具,它支持鼠标选择或者按键数字选择,用回车键确认或者鼠标点击方框确认。以下是示例代码与运行截图:

# -*- coding: utf-8 -*-
"""
Created on Tue Apr 12 10:31:15 2016

@author: zbg
"""
from psychopy import visual,event

win = visual.Window()
rating = visual.RatingScale(win=win, name='rating', marker=u'triangle',
size=1.5, pos=[0.0, -0.4], low=1, high=7, labels=[u'不同意', u'中立', u'完全同意'],
scale=u'你多大程度上赞同希拉里当选美国总统?')
#item = <statement, question, image, movie, ...>
while rating.noResponse:
    #item.draw()
    rating.draw()
    win.flip()
    
visual.TextStim(win, text = u"选了%d用了%.3f秒\n按空格退出" % (rating.getRating(), rating.getRT())).draw()
win.flip()

while 'space' not in event.getKeys():
    pass
    
print  rating.getRating()
print  rating.getRT()
print  rating.getHistory()

其他

另有一个完整的多种图片与量表评分的示例,完整程序(包括图片等文件)见:http://download.csdn.net/detail/zhanghao9547/8618453 或 http://vdisk.weibo.com/s/uu-WVvhhP2V2a

psychopy 定做实验程序 https://item.taobao.com/item.htm?spm=a230r.1.14.6.Q6E2OW&id=530690095131&ns=1&abbucket=15#detail

© 著作权归作者所有

z
粉丝 6
博文 24
码字总数 15941
作品 0
昆明
私信 提问
psychopy coder模式编写心理试验程序 字符程序和记录反应时

自变量 呈现3个字母,中间为A或者B的话,被试需要反应f,中间为X或Y的话,被试需要反应j。 3个字母中间有两种情况:AB或XY 3个字母两边有同类或异类两种情况:AB两边是AB为同类,为XY为异类;...

zbaigao
2016/04/25
294
0
python tkinter 编写心理学试验程序干扰任务之四则运算 psychopy

在训练任务与回忆任务之间,要求被试做4分钟的四则运算,包括20以内的加法、减法和乘法,被试需要输入运算结果。无论被试是否计算正确,皆进入下一题。4分钟的时间到后,结束干扰任务。 考虑...

zbaigao
2016/09/03
143
0
LCFinder 0.1.0 Alpha 3 发布,资源管理工具

LCFinder 0.1.0 Alpha 3 发布了。 LCFinder 是一个用 C 语言编写的资源管理工具,当前版本仅具备基本的图片检索和查看功能,新功能将在后续版本中加入。 这是第三个 Alpha 版,更新内容如下:...

司徒永超
2016/07/04
1K
4
网站开发

【业务需求】 一、功能需求 1、能和微信公众号对接,公众号能实现PC端功能 2、考试系统 3、健康档案管理系统(进行健康档案维护、健康信息收集、疾病风险评估、膳食评估、运动评估、生理评估...

百世奉天逍遥
2017/09/15
4
0
学习用 Thonny 写代码: 一个面向初学者的Python IDE

学习编程很难。即使当你最终怎么正确使用你的冒号和括号,但仍然有很大的可能你的程序不会如果所想的工作。 通常,这意味着你忽略了某些东西或者误解了语言结构,你需要在代码中找到你的期望...

12%
2018/06/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Cloud 笔记之Spring cloud config client

观察者模式它的数据的变化是被动的。 观察者模式在java中的实现: package com.hxq.springcloud.springcloudconfigclient;import org.springframework.context.ApplicationListener;i...

xiaoxiao_go
今天
4
0
CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
今天
4
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
今天
7
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
今天
7
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部