美文网首页
Psychtoolbox-3 / PTB-3 for Matla

Psychtoolbox-3 / PTB-3 for Matla

作者: DexterLei | 来源:发表于2017-04-07 17:51 被阅读568次
    [windowPtr,rect]=Screen('OpenWindow',windowPtrOrScreenNumber,[color],[rect],[pixelSize],[numberOfBuffers],[stereomode],[multisample],[imagingmode],[specialFlags],[clientRect]);
    

    Screen函数为PTB工具箱中最重要的函数,现以此解释相关参数:

    • windowPtr返回窗口句柄:窗口句柄是创建窗口时返回的窗口指针。
    • Screen('函数字符串',参数列表):“函数字符串”是文本型的函数名称,eg:'OpenWindow','Flip','CloseAll'等,必须至于单引号内。
    • 必须设置的参数为windowPtrOrScreenNumber,可以不用设置的参数有colorrect等,因为默认颜色为白色,默认窗口页面的大小为整个屏幕(与显示器分辨率有关)。等号前面[windowPtr,rect]的内容为指向页面的指针和创建页面的大小尺寸,也是可选的,即可接受页面指针和页面尺寸,也可只接收页面指针。
    • windowPtrOrScreenNumber:窗口句柄或屏幕序号(支持多个显示器),序号0为覆盖两个显示器屏幕的页面(两个显示器分辨率须一致,两个显示器组合起来共同显示同一个画面);序号1指第一个显示器,序号2指第二个显示器。
    • [color]颜色:通用形式为[R,G,B],默认值为白色。
    • [rect]矩形结构:[left top right bottom],分别表示矩形的左上角和右下角坐标,对一个窗口而言,其左上角坐标始终(0,0),因此右下角坐标就相当于窗口的宽度和高度。至少包含一个像素。
    • PixelSize:像素的深度,以位数来表示的存储一个像素所需的位数,默认值为当前显示器的设置,该值越高,表示某个像素的颜色值越丰富;可取值为8、16、32。
    • NumberOfBuffers:缓冲区数,一般取值为2,可以将需要呈现的刺激,先写入缓冲区中,适当的时候再通过页面切换技术Flip将缓冲区中的内容一次性快速呈现在屏幕上。
    • Stereomode:是否立体模式,默认值为0.
    • Multisample:如果设置该参数为大于0的值,则表示系统会进行反锯齿优化,即呈现的刺激更平滑,但需要耗费较多的内存资源,同时可能会降低刷新频率。
    • Imagingmode:图像处理模式,该参数用于控制是否使用PTB借助OpenGL等插件所实现的图像处理功能。
    • SpecialFlags:特殊标识。
    • ClientRect:用于制定绘制区域的大小,当使用该参数时,会建立相应的虚拟的帧缓冲,显示将该缓冲中的内容进行缩放处理,假设创建的窗口尺寸为300×200,如果设置clientRect为[0 0 150 100],会使绘制的内容在水平和垂直方向上放大两倍;如果设置ClientRect为[0 0 600 200],会使绘制的内容在水平方向压缩为一半,垂直方向保持不变。
    • 时间单位:PTB-3中的时间单位为秒,如果要获得毫秒,则×1000。
    • [optional arguments]: Brackets in the function list, e.g. [color],
      indicate optional arguments, not matrices. Optional arguments must be in order, without omitting earlier ones, but you can use the empty matrix [] as a place holder, with the same effect as omitting it.如果想省略某个参数值,可以使用[]占位符来表示使用相应位置参数的默认值。

    示例:
    新建一黑色视窗,并在2号监视器上全屏显示。显示图片o_1000005.bmp,暂停2s后,显示图片o_1000006.bmp,暂停2s后,关闭视窗。

    [winPt,winRect]=Screen('OpenWindow',2,[0 0 0]);  %新建一个视窗,并在2号监视器(显示器)上全屏显示,背景为黑色
    I1=imread('o_1000005.bmp');
    I2=imread('o_1000006.bmp');
    b1=Screen('MakeTexture',winPt,I1);  %将图片I1读取到b1中备用
    b2=Screen('MakeTexture',winPt,I2);
    
    Screen('DrawTexture',winPt,b1);  %将b1读取到刚刚新建的视窗中(还未显示)
    Screen('Flip',winPt);  %切换为b1图片
    WaitSecs(2);  %暂停2s
    Screen('DrawTexture',winPt,b2);
    Screen('Flip',winPt);
    WaitSecs(2);
    Screen('CloseAll');  %关闭所有视窗
    

    参考:
    Psychtoolbox 3 精确时间控制(1)

    Wiki: Textures, Windows, Screens

    Psychtoolbox-3 FAQ
    Psychtoolbox-3 Cookbook

    相关文章

      网友评论

          本文标题:Psychtoolbox-3 / PTB-3 for Matla

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