jAER project on SourceForge

ch.unizh.ini.jaer.projects.robothead.retinacochlea
Class LEDTracker

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

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

This class divides the incoming Events into Retina and Cochlea Events. The Retina Events are tracked by an enclosed RectangularClusterTracker, and the Cluster information is provided. the cochlea Events are converted to normal Cochlea Events (y value-64) and passed on to the next filter...

Author:
jaeckeld

Field Summary
static RectangularClusterTracker.Cluster LED
           
 
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
LEDTracker(AEChip chip)
          Creates a new instance of RetinaCochleaFilter
 
Method Summary
 void annotate(float[][][] frame)
          not used
 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)
          not used
 EventPacket<?> filterPacket(EventPacket<?> in)
          Subclasses implement this method to define custom processing.
 java.lang.Object getFilterState()
          should return the filter state in some useful form
 RectangularClusterTracker.Cluster getLED()
           
 float getMaxSizeChange()
           
 float getMinEventRate()
           
 int getMinLifeTime()
           
 void initFilter()
          this should allocate and initialize memory: it may be called when the chip e.g.
 boolean isDoTracking()
           
 boolean isLEDRecognized()
           
 void resetFilter()
          should reset the filter to initial state
 void setDoTracking(boolean set)
           
 void setMaxSizeChange(float maxSizeChange)
           
 void setMinEventRate(float minEventRate)
           
 void setMinLifeTime(int minLifeTime)
           
 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
 

Field Detail

LED

public static RectangularClusterTracker.Cluster LED
Constructor Detail

LEDTracker

public LEDTracker(AEChip chip)
Creates a new instance of RetinaCochleaFilter

Method Detail

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

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

annotate

public void annotate(float[][][] frame)
not used

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)
not used

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

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

getMinEventRate

public float getMinEventRate()

setMinEventRate

public void setMinEventRate(float minEventRate)

getMinLifeTime

public int getMinLifeTime()

setMinLifeTime

public void setMinLifeTime(int minLifeTime)

getMaxSizeChange

public float getMaxSizeChange()

setMaxSizeChange

public void setMaxSizeChange(float maxSizeChange)

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

isLEDRecognized

public boolean isLEDRecognized()

setDoTracking

public void setDoTracking(boolean set)

isDoTracking

public boolean isDoTracking()

getLED

public RectangularClusterTracker.Cluster getLED()

jAER project on SourceForge