Presentation is loading. Please wait.

Presentation is loading. Please wait.

Matlab Class 5 Xiaotao Su, Ph.D. Visual Psychophysicist & IT Group Leader Rutgers Center for Cognitive Science (RuCCS)

Similar presentations


Presentation on theme: "Matlab Class 5 Xiaotao Su, Ph.D. Visual Psychophysicist & IT Group Leader Rutgers Center for Cognitive Science (RuCCS)"— Presentation transcript:

1 Matlab Class 5 Xiaotao Su, Ph.D. Visual Psychophysicist & IT Group Leader Rutgers Center for Cognitive Science (RuCCS)

2 RuCCS 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 RuCCS Screen drawing and psychtoolbox Screen Geometry X Positive -> Y Positive Origin Max X and Y Coordinates are measured in pixels.

4 RuCCS How you typically work with the psychtoolbox Back Buffer (invisible) Front Buffer

5 RuCCS How you typically work with the psychtoolbox Front Buffer Step 1: Draw Shape to the back buffer

6 RuCCS How you typically work with the psychtoolbox Step 2: Flip the back buffer to the front buffer

7 RuCCS How you typically work with the psychtoolbox Back Buffer is automatically cleared

8 RuCCS How you typically work with the psychtoolbox Now you can continue with your next frame of animation

9 RuCCS How you typically work with the psychtoolbox Flip the back buffer to the front buffer

10 RuCCS How you typically work with the psychtoolbox Back Buffer is automatically cleared

11 RuCCS 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 RuCCS Set up program draw_stuff % draw_stuff.m % % Draws stuff on the screen

13 RuCCS Skip Sync Tests Add to your program before opening the new screen Screen('Preference','SkipSyncTests', 1);

14 RuCCS Initialize the main window % draw_stuff.m % % Draws stuff on the screen clear all; which_screen=0;

15 RuCCS Set up program draw_stuff % draw_stuff.m % % Draws stuff on the screen clear all; which_screen=0; [window_ptr, screen_dimensions] =Screen(0,'OpenWindow', [0, 0, 0]); 0 is main screen (allows for multiple monitors) Command issued to the psychtoolbox Screen function [red, green, blue] Vector specifying Screen color 0

16 RuCCS Set up program draw_stuff % draw_stuff.m % % Draws stuff on the screen clear all; which_screen=0; [window_ptr, screen_dimensions]=Screen(0,'OpenWindow', [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 RuCCS Draw shape in back buffer % draw_stuff.m % % Draws stuff on the screen clear all; which_screen=0; [window_ptr, screen_dimensions]=Screen(0,'OpenWindow', [0, 0, 0]); shape_dimensions = screen_dimensions/2; Screen(window_ptr, 'FillRect', [0,0,255], shape_dimensions); X1, Y1 X2, Y2 Front buffer Back buffer

18 RuCCS % draw_stuff.m % % Draws stuff on the screen clear all; which_screen=0; [window_ptr, screen_dimensions]=Screen(0,'OpenWindow', [0, 0, 0]); shape_dimensions = screen_dimensions/2; Screen(window_ptr, 'FillRect', [0,0,255], shape_dimensions); %Flip the buffers Screen(window_ptr,'Flip'); Back buffer Flip the back buffer to the front buffer Front buffer

19 RuCCS Clear screen >>> clear all; which_screen=0; [window_ptr, screen_dimensions]=Screen(0,'OpenWindow', [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 RuCCS Task 1: Making a movie % draw_stuff.m % % Draws stuff on the screen clear all; which_screen=0; [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 RuCCS Task 1: Basic Display Loop in PTB (code) % draw_stuff.m % % Draws stuff on the screen clear all; try which_screen=0; bg_color = [0, 0, 0]; [window_ptr, screen_dimensions]= … Screen(which_screen, … 'OpenWindow',bg_color); shape_dimensions = … screen_dimensions/2; tic; while (toc < 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 clear Screen; catch clear Screen; end

22 RuCCS 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 5 e.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 RuCCS 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 RuCCS 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]


Download ppt "Matlab Class 5 Xiaotao Su, Ph.D. Visual Psychophysicist & IT Group Leader Rutgers Center for Cognitive Science (RuCCS)"

Similar presentations


Ads by Google