jAER project on SourceForge

ch.unizh.ini.jaer.projects.eyetracker
Class EllipseTracker

java.lang.Object
  extended by net.sf.jaer.eventprocessing.EventFilter
      extended by net.sf.jaer.eventprocessing.EventFilter2D
          extended by ch.unizh.ini.jaer.projects.eyetracker.EllipseTracker
All Implemented Interfaces:
java.util.Observer, FrameAnnotater

public class EllipseTracker
extends EventFilter2D
implements FrameAnnotater, java.util.Observer

Tracks ellipsoidal shapes for eye tracking


Field Summary
 
Fields inherited from class net.sf.jaer.eventprocessing.EventFilter2D
enclosedFilter, out
 
Fields inherited from class net.sf.jaer.eventprocessing.EventFilter
annotationEnabled, chip, enclosedFilterChain, filterEnabled, log, perf, propertyTooltipMap, support
 
Constructor Summary
EllipseTracker(AEChip chip)
          Creates a new instance of TypeCoincidenceFilter
 
Method Summary
 void annotate(float[][][] frame)
          annotate the RGB frame somehow by color pixels in the rendered pixel frame data.
 void annotate(javax.media.opengl.GLAutoDrawable drawable)
          Each annotator enters annotate with graphics context current, in coordinates with pixel 0,0 in LL corner (note opposite from Java2D) and pixel spacing 1 unit after the scaling transform (which is already active).
 void annotate(java.awt.Graphics2D g)
          each annotator is called by the relevant class (e.g.
 EventPacket filterPacket(EventPacket in)
          Subclasses implement this method to define custom processing.
 int getbufferLength()
           
 float getcameraToEyeDistanceMM()
           
 int geteyeCenterX()
           
 int geteyeCenterY()
           
 int geteyeMaskBottom()
           
 int geteyeMaskTop()
           
 int geteyeMaskXleft()
           
 int geteyeMaskXright()
           
 int geteyeMaskY()
           
 float geteyeRadiusMM()
           
 java.lang.Object getFilterState()
          should return the filter state in some useful form
 float getfocus()
           
 float getirisRadius()
           
 float getmaxStepSize()
           
 float getpupilRadius()
           
 int gettreshold()
           
 void initFilter()
          this should allocate and initialize memory: it may be called when the chip e.g.
 boolean isellipseTrackerEnabled()
           
 boolean isGeneratingFilter()
           
 boolean isLogDataEnabled()
           
 void resetFilter()
          should reset the filter to initial state
 void setbufferLength(int bufferLength)
           
 void setcameraToEyeDistanceMM(float cameraToEyeDistanceMM)
           
 void setellipseTrackerEnabled(boolean ellipseTrackerEnabled)
           
 void seteyeCenterX(int eyeCenterX)
           
 void seteyeCenterY(int eyeCenterY)
           
 void seteyeMaskBottom(int eyeMaskBottom)
           
 void seteyeMaskTop(int eyeMaskTop)
           
 void seteyeMaskXleft(int eyeMaskXleft)
           
 void seteyeMaskXright(int eyeMaskXright)
           
 void seteyeMaskY(int eyeMaskY)
           
 void seteyeRadiusMM(float eyeRadiusMM)
           
 void setfocus(float focus)
           
 void setirisRadius(float irisRadius)
           
 void setLogDataEnabled(boolean logDataEnabled)
           
 void setmaxStepSize(float maxStepSize)
           
 void setpupilRadius(float pupilRadius)
           
 void settreshold(int treshold)
           
 void update(java.util.Observable o, java.lang.Object arg)
           
 
Methods inherited from class net.sf.jaer.eventprocessing.EventFilter2D
checkOutputPacketEventType, checkOutputPacketEventType, getEnclosedFilter, resetOut, setEnclosedFilter, setFilterEnabled
 
Methods inherited from class net.sf.jaer.eventprocessing.EventFilter
getChip, getDescription, getEnclosedFilterChain, getEnclosingFilter, getPrefs, getPropertyChangeSupport, getPropertyTooltip, isAnnotationEnabled, isEnclosed, isFilterEnabled, prefsEnabledKey, setAnnotationEnabled, setChip, setEnclosed, setEnclosedFilter, setEnclosedFilterChain, setEnclosingFilter, setPreferredEnabledState, setPrefs, setPropertyTooltip
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface net.sf.jaer.graphics.FrameAnnotater
isAnnotationEnabled, setAnnotationEnabled
 

Constructor Detail

EllipseTracker

public EllipseTracker(AEChip chip)
Creates a new instance of TypeCoincidenceFilter

Method Detail

isGeneratingFilter

public boolean isGeneratingFilter()

getFilterState

public java.lang.Object getFilterState()
Description copied from class: EventFilter
should return the filter state in some useful form

Specified by:
getFilterState in class EventFilter

resetFilter

public void resetFilter()
Description copied from class: EventFilter
should reset the filter to initial state

Specified by:
resetFilter in class EventFilter

initFilter

public void initFilter()
Description copied from class: EventFilter
this should allocate and initialize memory: it may be called when the chip e.g. size parameters are changed after creation of the filter

Specified by:
initFilter in class EventFilter

update

public void update(java.util.Observable o,
                   java.lang.Object arg)
Specified by:
update in interface java.util.Observer

getirisRadius

public float getirisRadius()

setirisRadius

public void setirisRadius(float irisRadius)

getpupilRadius

public float getpupilRadius()

setpupilRadius

public void setpupilRadius(float pupilRadius)

geteyeRadiusMM

public float geteyeRadiusMM()

seteyeRadiusMM

public void seteyeRadiusMM(float eyeRadiusMM)

getfocus

public float getfocus()

setfocus

public void setfocus(float focus)

getcameraToEyeDistanceMM

public float getcameraToEyeDistanceMM()

setcameraToEyeDistanceMM

public void setcameraToEyeDistanceMM(float cameraToEyeDistanceMM)

geteyeCenterX

public int geteyeCenterX()

seteyeCenterX

public void seteyeCenterX(int eyeCenterX)

geteyeCenterY

public int geteyeCenterY()

seteyeCenterY

public void seteyeCenterY(int eyeCenterY)

isellipseTrackerEnabled

public boolean isellipseTrackerEnabled()

setellipseTrackerEnabled

public void setellipseTrackerEnabled(boolean ellipseTrackerEnabled)

geteyeMaskXleft

public int geteyeMaskXleft()

seteyeMaskXleft

public void seteyeMaskXleft(int eyeMaskXleft)

geteyeMaskXright

public int geteyeMaskXright()

seteyeMaskXright

public void seteyeMaskXright(int eyeMaskXright)

geteyeMaskY

public int geteyeMaskY()

seteyeMaskY

public void seteyeMaskY(int eyeMaskY)

geteyeMaskTop

public int geteyeMaskTop()

seteyeMaskTop

public void seteyeMaskTop(int eyeMaskTop)

geteyeMaskBottom

public int geteyeMaskBottom()

seteyeMaskBottom

public void seteyeMaskBottom(int eyeMaskBottom)

getbufferLength

public int getbufferLength()

setbufferLength

public void setbufferLength(int bufferLength)

getmaxStepSize

public float getmaxStepSize()

setmaxStepSize

public void setmaxStepSize(float maxStepSize)

gettreshold

public int gettreshold()

settreshold

public void settreshold(int treshold)

annotate

public void annotate(float[][][] frame)
Description copied from interface: FrameAnnotater
annotate the RGB frame somehow by color pixels in the rendered pixel frame data.

Specified by:
annotate in interface FrameAnnotater
Parameters:
frame - the RGB pixel information. First dimension is Y, second is X, third is RGB

annotate

public void annotate(java.awt.Graphics2D g)
Description copied from interface: FrameAnnotater
each annotator is called by the relevant class (e.g. EyeTracker) and enters annotate with graphics context current, in coordinates with pixel 0,0 in UL corner and pixel spacing 1 unit before scaling transform (which is already active).

Specified by:
annotate in interface FrameAnnotater
Parameters:
g - the Graphics2D context

annotate

public void annotate(javax.media.opengl.GLAutoDrawable drawable)
Description copied from interface: FrameAnnotater
Each annotator enters annotate with graphics context current, in coordinates with pixel 0,0 in LL corner (note opposite from Java2D) and pixel spacing 1 unit after the scaling transform (which is already active). The FrameAnnotater then can use JOGL calls to render to the screen by getting the GL context, e.g. the following code, used in the context of an AEChip object, draws a golden lines from LL to UR of the pixel array.
        GL gl = drawable.getGL();
        gl.glBegin(GL.GL_LINES);
        gl.glColor3f(.5f, .5f, 0);
        gl.glVertex2f(0, 0);
        gl.glVertex2f(getSizeX() - 1, getSizeY() - 1);
        gl.glEnd();
 

Specified by:
annotate in interface FrameAnnotater
Parameters:
drawable - the OpenGL drawable components, e.g., GLCanvas

filterPacket

public EventPacket filterPacket(EventPacket in)
Description copied from class: EventFilter2D
Subclasses implement this method to define custom processing.

Specified by:
filterPacket in class EventFilter2D
Parameters:
in - the input packet
Returns:
the output packet

isLogDataEnabled

public boolean isLogDataEnabled()

setLogDataEnabled

public void setLogDataEnabled(boolean logDataEnabled)

jAER project on SourceForge