jAER project on SourceForge

net.sf.jaer.eventprocessing.tracking
Class KalmanFilter

java.lang.Object
  extended by net.sf.jaer.eventprocessing.EventFilter
      extended by net.sf.jaer.eventprocessing.EventFilter2D
          extended by net.sf.jaer.eventprocessing.tracking.KalmanFilter
All Implemented Interfaces:
java.util.Observer, FrameAnnotater

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


Nested Class Summary
 class KalmanFilter.ClusterData
          The data class for each Cluster.
 
Field Summary
 
Fields inherited from class net.sf.jaer.eventprocessing.EventFilter2D
enclosedFilter, out
 
Fields inherited from class net.sf.jaer.eventprocessing.EventFilter
annotationEnabled, enclosedFilterChain, filterEnabled, log, perf, propertyTooltipMap, support
 
Constructor Summary
KalmanFilter(AEChip chip, ClusterTracker clusterTracker)
          Creates a new instance of KalmanFilter
 
Method Summary
 void annotate(float[][][] frame)
          annotate the rendered retina frame to show locations of clusters
 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.
 float getBridgeHeight()
           
 int getDistTo1Px()
           
 float getDistToVanishingPoint()
           
 boolean getFeedbackToCluster()
           
 java.lang.Object getFilterState()
          should return the filter state in some useful form
 boolean getMapToRoad()
           
 float getMaxMeasurementVariance()
           
 float getMinProcessVariance()
           
 int getNbOfEventsTillTrack()
           
 boolean getUseDynamicVariances()
           
 void initFilter()
          Initialises the filter and geometry is recalculated
 boolean isGeneratingFilter()
           
 void resetFilter()
          should reset the filter to initial state
 void setBridgeHeight(float bridgeHeight)
           
 void setDistTo1Px(int distTo1Px)
           
 void setDistToVanishingPoint(float d)
           
 void setFeedbackToCluster(boolean feedbackToCluster)
           
 void setMapToRoad(boolean mapToRoad)
           
 void setMaxMeasurementVariance(float maxMeasurementVariance)
           
 void setMinProcessVariance(float minProcessVariance)
           
 void setNbOfEventsTillTrack(int nbOfEventsTillTrack)
           
 void setUseDynamicVariances(boolean useDynamicVariances)
           
 java.lang.String toString()
           
 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, wait, wait, wait
 
Methods inherited from interface net.sf.jaer.graphics.FrameAnnotater
isAnnotationEnabled, setAnnotationEnabled
 

Constructor Detail

KalmanFilter

public KalmanFilter(AEChip chip,
                    ClusterTracker clusterTracker)
Creates a new instance of KalmanFilter

Method Detail

initFilter

public void initFilter()
Initialises the filter and geometry is recalculated

Specified by:
initFilter in class EventFilter

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

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

isGeneratingFilter

public boolean isGeneratingFilter()

resetFilter

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

Specified by:
resetFilter in class EventFilter

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

update

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

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

annotate

public void annotate(float[][][] frame)
annotate the rendered retina frame to show locations of clusters

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

setDistToVanishingPoint

public void setDistToVanishingPoint(float d)

getDistToVanishingPoint

public float getDistToVanishingPoint()

getMapToRoad

public boolean getMapToRoad()

setMapToRoad

public void setMapToRoad(boolean mapToRoad)

getFeedbackToCluster

public boolean getFeedbackToCluster()

setFeedbackToCluster

public void setFeedbackToCluster(boolean feedbackToCluster)

getBridgeHeight

public float getBridgeHeight()

setBridgeHeight

public void setBridgeHeight(float bridgeHeight)

getMaxMeasurementVariance

public float getMaxMeasurementVariance()

setMaxMeasurementVariance

public void setMaxMeasurementVariance(float maxMeasurementVariance)

getMinProcessVariance

public float getMinProcessVariance()

setMinProcessVariance

public void setMinProcessVariance(float minProcessVariance)

getNbOfEventsTillTrack

public int getNbOfEventsTillTrack()

setNbOfEventsTillTrack

public void setNbOfEventsTillTrack(int nbOfEventsTillTrack)

getDistTo1Px

public int getDistTo1Px()

setDistTo1Px

public void setDistTo1Px(int distTo1Px)

setUseDynamicVariances

public void setUseDynamicVariances(boolean useDynamicVariances)

getUseDynamicVariances

public boolean getUseDynamicVariances()

jAER project on SourceForge