User Tools

Site Tools


biac:analysis:roi_et

This is an old revision of the document!


Region of Interest Based Eyetracking Analysis

These steps were created to gather eyetracking information based on specific regions of interest drawn on stimuli from the experimental task. The following assumes your task was image based, ( or images can be created to mimic the task ), there is XML behavioral output from the task, and your eyetracking was collected through Cigal or Viewpoint.

Behavioral XML

The first step is to create behavioral XML files using the BXH/XCEDE tools. Please see the documentation for eprime2xml, showplay2xml, eventstable2xml to create the files.

Your resulting event nodes should include (at minimum):

  • the image name
  • onset
  • duration

For example:

  <event type="image" units="sec">
    <onset>425.894</onset>
    <duration>4</duration>
    <value name="imgName">12F_CA_C.bmp</value>
    <value name="regType">positive</value>
    <value name="trialType">FACE</value>
    <value name="response">1</value>
    <value name="RT">244</value>
  </event>

ROI Drawing

Next, ROIs should be drawn for each image that you wish to calculate eyetracking data. These ROIs should be saved in an XML based format. Chris Petty has written a matlab based function that will let you draw circles/ellipses or squares/rectangles on input images. The result is an XML which can be merged into your behavioral XML using the bxh tool bxh_eventmerge .

All of the following steps are based on this type of ROI.

- The first thing you need is a text file with all the image paths ( the full path to the image is recommended ).

file_names.txt
/home/petty/eyetracking/sys_service/37M_CA_C.bmp
/home/petty/eyetracking/sys_service/HAI_31.bmp

- Also, either add the path to the actual drawing function “imgROI_keyfcn”, or make a copy of it to your own directory.

- Screen resolution is the resolution of the display that the task was run on. The drawing function creates a representation based on that size.

Here is a sample script to run the drawing function:

drawer_sample.m
%% add path to functions
%addpath \\Munin\Data\Programs\User_Scripts\petty\matlab\
addpath ~/net/munin/data/Programs/User_Scripts/petty/matlab/
 
%% full path to your text file, which contains images ( also full path )
fileList = textread('file_names.txt','%s'); %read in list
XML.rois = {}; %create empty XML
outName = 'my_output.xml'; %name of output .xml with all ROIs ( file will overwrite on each save )
 
%screen resolution of task display
xRes = 1024;
yRes = 768;
scrSize = [ xRes yRes ];
 
imgIDX = 0; %leave 0 to start at first image
 
figUD = struct('imgIDX',imgIDX,'XML',XML);
    %loop that finds images
    imgs = {};
    for file=1:length(fileList)
        [path name ext] = fileparts(fileList{file});
        imgs{file} = struct('fname',[name ext],'fpath',fileList{file});
    end
 
%% this opens the drawing window and runs functions: do not edit %%
fscreen = repmat(uint8(0),[scrSize(2),scrSize(1),3]);
axes_h = axes;
imshow(fscreen,'Parent',axes_h,'InitialMagnification',100,'Border','tight');
text(10,60,{'i - image','e - ellipse','r - rectangle','s - save','q - quit' },'HorizontalAlignment','left','BackgroundColor',[.5 .5 .5],'Color',[1 1 1]);
figH = gcf;
set(figH,'Toolbar','none','Resize','off');
set(figH,'UserData',figUD);
hold on;
 
% calls the functions
set(figH,'KeyPressFcn','imgROI_keyfcn(gcbo,axes_h,imgs,scrSize,outName)');

Once the text file is create with full paths to each image.

biac/analysis/roi_et.1303754572.txt.gz · Last modified: 2014/08/04 16:03 (external edit)