Matlab Class 5 Xiaotao Su, Ph.D. Visual Psychophysicist - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

Matlab Class 5 Xiaotao Su, Ph.D. Visual Psychophysicist

Description:

Matlab Class 5 Xiaotao Su, Ph.D. Visual Psychophysicist & IT Group Leader Rutgers Center for Cognitive Science (RuCCS) Psychtoolbox Basics Computers are perfect for ... – PowerPoint PPT presentation

Number of Views:73
Avg rating:3.0/5.0
Slides: 25
Provided by: Robert1943
Category:

less

Transcript and Presenter's Notes

Title: Matlab Class 5 Xiaotao Su, Ph.D. Visual Psychophysicist


1
Matlab Class 5Xiaotao Su, Ph.D.Visual
Psychophysicist IT Group LeaderRutgers Center
for Cognitive Science (RuCCS)
2
Psychtoolbox Basics
  • Computers are perfect for creating and displaying
    visual psychophysics stimuli
  • Programs usually written in a low-level language
    (e.g. C or Pascal) to achieve full control of the
    hardware for precise stimulus display but are
    difficult to program
  • Interpreted languages like Matlab are abstracted
    from hardware details and provide friendlier
    development environments
  • The Psychophysics Toolbox is a software package
    that allows Matlab to fully control the hardware
    for precise stimulus display while retaining the
    flexibility and ease of Matlab.

3
Screen drawing and psychtoolbox
  • Screen Geometry

Origin
Coordinates are measured in
pixels.
X ----------- Positive -gt
Y
Positive
Max X and Y
4
How you typically work with the psychtoolbox
Back Buffer (invisible)
Front Buffer
5
How you typically work with the psychtoolbox
Step 1 Draw Shape to the back buffer
Front Buffer
6
How you typically work with the psychtoolbox
Step 2 Flip the back buffer to the front buffer
7
How you typically work with the psychtoolbox
Back Buffer is automatically cleared
8
How you typically work with the psychtoolbox
Now you can continue with your next frame of
animation
9
How you typically work with the psychtoolbox
Flip the back buffer to the front buffer
10
How you typically work with the psychtoolbox
Back Buffer is automatically cleared
11
Basic Display Loop in PsychToolbox (PTB)
  • Open Window
  • while some condition is true do the following
  • draw something
  • make some changes
  • repeat
  • Close screen

12
Set up program draw_stuff
  • draw_stuff.m
  • Draws stuff on the screen

13
Skip Sync Tests
  • Add to your program before opening the new
    screenScreen('Preference','SkipSyncTests', 1)

14
Initialize the main window
  • draw_stuff.m
  • Draws stuff on the screen
  • clear all
  • which_screen0

15
Set up program draw_stuff
  • draw_stuff.m
  • Draws stuff on the screen
  • clear all
  • which_screen0
  • window_ptr, screen_dimensions
  • Screen(0,'OpenWindow', 0, 0, 0)

0
Vector specifying Screen color
Command issued to the psychtoolbox Screen function
0 is main screen (allows for multiple monitors)
red, green, blue
16
Set up program draw_stuff
  • draw_stuff.m
  • Draws stuff on the screen
  • clear all
  • which_screen0
  • window_ptr, screen_dimensionsScreen(0,'OpenWind
    ow', 0, 0, 0)

Vector x1, y1, x2, y2 Which could be 0, 0,
800, 600 For an 800 X 600 display
x1 0 y1 0
x2 800 y2 600
17
Draw shape in back buffer
  • draw_stuff.m
  • Draws stuff on the screen
  • clear all
  • which_screen0
  • window_ptr, screen_dimensionsScreen(0,'OpenWind
    ow', 0, 0, 0)
  • shape_dimensions screen_dimensions/2
  • Screen(window_ptr, 'FillRect', 0,0,255,
    shape_dimensions)

X1, Y1
Front buffer
X2, Y2
Back buffer
18
Flip the back buffer to the front buffer
  • draw_stuff.m
  • Draws stuff on the screen
  • clear all
  • which_screen0
  • window_ptr, screen_dimensionsScreen(0,'OpenWind
    ow', 0, 0, 0)
  • shape_dimensions screen_dimensions/2
  • Screen(window_ptr, 'FillRect', 0,0,255,
    shape_dimensions)
  • Flip the buffers
  • Screen(window_ptr,'Flip')

Front buffer
Back buffer
19
Clear screen
  • ltltltltsnipgtgtgtgt
  • clear all
  • which_screen0
  • window_ptr, screen_dimensionsScreen(0,'OpenWind
    ow', 0, 0, 0)
  • shape_dimensions screen_dimensions/2
  • Screen(window_pointer, 'FillRect', 0,0,255,
    shape_dimensions)
  • Copy to main window
  • Screen(window,'Flip')
  • leave the image up for 5 seconds
  • WaitSecs(5)
  • Clear screen and return control to matlab
  • clear screen

20
Task 1 Making a movie
  • draw_stuff.m
  • Draws stuff on the screen
  • clear all
  • which_screen0
  • window_ptr, screen_dimensions
  • Screen(0,'OpenWindow', 0, 0, 0)
  • shape_dimensions screen_dimensions/2
  • Screen(window_pointer, 'FillRect',
  • 0,0,255, shape_dimensions)
  • then loop and increment screen_dimensions at
    each turn

21
Task 1 Basic Display Loop in PTB (code)
  • draw_stuff.m
  • Draws stuff on the screen
  • clear all
  • try
  • which_screen0
  • bg_color 0, 0, 0
  • window_ptr, screen_dimensions
  • Screen(which_screen, 'OpenWindow',bg_color)
  • shape_dimensions screen_dimensions/2
  • tic

while (toc lt 5) move shape
shape_dimensions shape_dimensions
0,5,0,5 draw shape
Screen(window_ptr, 'FillRect', 0,0,255,
shape_dimensions) flip buffer and
repeat Screen(Flip, window_ptr) end cl
ear Screen catch clear Screen end
22
Moving Shapes around the Screen
  • Shapes are defined by an array of numbers e.g.
    sh1 10, 15, 40, 45 x1, y1, x2, y2
  • To move a shape in the x direction by 5 pixels we
    need to increment both x coordinates by 5e.g.
    sh1(1) sh1(1) 5 sh1(3) sh1(3) 5 or use
    another array sh1 sh1 5, 0, 5, 0
  • Same for moving in the y direction
  • Increment both if you want to move diagonally

23
Task 2
Make the rectangle move to the bottom of the
screen at 5 pixels per frame, then move right
when it hits the bottom. When it hits the right,
the program ends
Hint shape_dimensions(1) is x1, (2) is y1, (3)
is x2, 4 is y2
24
Task 3
When the rectangle hits the bottom make it change
colors to red
Hint color is a 3 number vector red is
255, 0, 0
Write a Comment
User Comments (0)
About PowerShow.com