0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 function visualizeTrackDist( leftEyePos, leftOri, imgFile, varParams, stimSize )
0015
0016
0017
0018 if ~isfield( 'varParams', 'fixMinNumSamples'); varParams.fixMinNumSamples = 6; end
0019 if ~isfield( 'varParams', 'fixMaxCircleRadius'); varParams.fixMaxCircleRadius = 15; end
0020
0021 if ~isfield( 'varParams', 'velThreshold'); varParams.velThreshold = 20; end
0022 if ~isfield( 'varParams', 'stopThreshold'); varParams.stopThreshold = 8; end
0023
0024 fixMinNumSamples = varParams.fixMinNumSamples;
0025 fixMaxCircleRadius = varParams.fixMaxCircleRadius;
0026 velThreshold = varParams.velThreshold;
0027 stopThreshold = varParams.stopThreshold;
0028
0029
0030
0031 if isempty(imgFile)
0032 A = zeros( stimSize(1), stimSize(2), 3);
0033 else
0034 A = imread( imgFile );
0035 end
0036
0037
0038
0039 hFig=figure(2);
0040 set( hFig, 'renderer', 'opengl')
0041 axis off;
0042 set(hFig,'renderermode','auto');
0043
0044
0045
0046 if max(real(leftEyePos)) <= 1
0047 leftEyePos = scaleEyeTrack( leftEyePos, size(A(:,:,1)) );
0048 if ~isempty( leftOri )
0049 leftOri = scaleEyeTrack(leftOri, size(A(:,:,1)) );
0050 end
0051 end
0052 numSamples = length( leftEyePos );
0053
0054
0055 fprintf( 'Finding fixations and saccades... ');
0056 fixStruct = codeFixationsDist( leftEyePos, fixMinNumSamples, fixMaxCircleRadius );
0057 leftFixation = fixStruct.fixationVector;
0058 sacStruct = codeSaccadesDist( leftEyePos, velThreshold, stopThreshold);
0059 leftSaccade = sacStruct.saccadeVec;
0060 fprintf( 'done!\n');
0061
0062
0063 secCount = 0;
0064 for i1 = 2:1:numSamples
0065
0066 imshow( A );
0067
0068 if leftFixation(i1)~=0
0069
0070 text(100,60, ['F' int2str(leftFixation(i1))], 'fontsize', 30, 'color', 'b' );
0071 end
0072 if leftSaccade(i1)~=0
0073
0074 text(100,100, ['S' int2str(leftSaccade(i1))], 'fontsize', 30, 'color', 'b' );
0075 end
0076
0077 hold on;
0078 plot( leftEyePos(i1), 'b*' );
0079 if ~isempty( leftOri )
0080 plot( leftOri(i1), 'w.' );
0081 end
0082 pause(.02);
0083
0084 if mod( i1, 60 ) == 0
0085 secCount = secCount+1;
0086 end
0087
0088 hold off;
0089 end