|
jAER project on SourceForge | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.sf.jaer.eventprocessing.EventFilter
net.sf.jaer.eventprocessing.EventFilter2D
net.sf.jaer.eventprocessing.label.DirectionSelectiveFilter
public class DirectionSelectiveFilter
Computes motion based nearest event (in past time) in neighboring pixels.
Output cells type has values 0-7, 0 being upward motion, increasing by 45 deg CCW to 7 being motion up and to right.
Nested Class Summary | |
---|---|
class |
DirectionSelectiveFilter.Expansion
|
class |
DirectionSelectiveFilter.MotionVectors
represents the global motion metrics from statistics of dir selective and simple cell events. |
class |
DirectionSelectiveFilter.Rotation
rotation around center, positive is CCW, radians per second |
class |
DirectionSelectiveFilter.Translation
global translatory motion, pixels per second |
Field Summary | |
---|---|
static int |
MAX_SEARCH_DISTANCE
|
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 | |
---|---|
DirectionSelectiveFilter(AEChip chip)
Creates a new instance of DirectionSelectiveFilter |
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. |
static java.lang.String |
getDescription()
|
int |
getExcessSpeedRejectFactor()
|
java.lang.Object |
getFilterState()
should return the filter state in some useful form |
int |
getMaxDtThreshold()
|
int |
getMinDtThreshold()
|
DirectionSelectiveFilter.MotionVectors |
getMotionVectors()
The motion vectors are the global motion components |
float |
getPpsScale()
|
float |
getRotationRadPerSec()
|
int |
getSearchDistance()
|
float |
getSpeedMixingFactor()
|
int |
getSubSampleShift()
|
int |
getTauLow()
|
java.awt.geom.Point2D.Float |
getTranslationVector()
Returns the 2-vector of global translational average motion |
void |
initFilter()
this should allocate and initialize memory: it may be called when the chip e.g. |
boolean |
isGeneratingFilter()
|
boolean |
isShowGlobalEnabled()
|
boolean |
isShowRawInputEnabled()
|
boolean |
isShowVectorsEnabled()
|
boolean |
isSpeedControlEnabled()
|
boolean |
isUseAvgDtEnabled()
|
void |
resetFilter()
should reset the filter to initial state |
void |
setExcessSpeedRejectFactor(int excessSpeedRejectFactor)
|
void |
setFilterEnabled(boolean yes)
overrides super to ensure that preceeding DirectionSelectiveFilter is also enabled |
void |
setMaxDtThreshold(int maxDtThreshold)
|
void |
setMinDtThreshold(int minDtThreshold)
|
void |
setPpsScale(float ppsScale)
scale for drawn motion vectors, pixels per second per pixel |
void |
setSearchDistance(int searchDistance)
|
void |
setShowGlobalEnabled(boolean showGlobalEnabled)
|
void |
setShowRawInputEnabled(boolean showRawInputEnabled)
|
void |
setShowVectorsEnabled(boolean showVectorsEnabled)
|
void |
setSpeedControlEnabled(boolean speedControlEnabled)
|
void |
setSpeedMixingFactor(float speedMixingFactor)
|
void |
setSubSampleShift(int subSampleShift)
Sets the number of spatial bits to subsample events times by. |
void |
setTauLow(int tauLow)
|
void |
setUseAvgDtEnabled(boolean useAvgDtEnabled)
|
void |
update(java.util.Observable o,
java.lang.Object arg)
|
Methods inherited from class net.sf.jaer.eventprocessing.EventFilter2D |
---|
checkOutputPacketEventType, checkOutputPacketEventType, getEnclosedFilter, resetOut, setEnclosedFilter |
Methods inherited from class net.sf.jaer.eventprocessing.EventFilter |
---|
getChip, 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 |
---|
public static final int MAX_SEARCH_DISTANCE
Constructor Detail |
---|
public DirectionSelectiveFilter(AEChip chip)
Method Detail |
---|
public static java.lang.String getDescription()
public boolean isGeneratingFilter()
public java.lang.Object getFilterState()
EventFilter
getFilterState
in class EventFilter
public void resetFilter()
EventFilter
resetFilter
in class EventFilter
public void annotate(java.awt.Graphics2D g)
FrameAnnotater
annotate
in interface FrameAnnotater
g
- the Graphics2D contextpublic void annotate(javax.media.opengl.GLAutoDrawable drawable)
FrameAnnotater
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();
annotate
in interface FrameAnnotater
drawable
- the OpenGL drawable components, e.g., GLCanvaspublic void annotate(float[][][] frame)
FrameAnnotater
annotate
in interface FrameAnnotater
frame
- the RGB pixel information. First dimension is Y, second is X, third is RGBpublic void setFilterEnabled(boolean yes)
setFilterEnabled
in class EventFilter2D
yes
- true to resetEventFilter.setPreferredEnabledState()
public EventPacket filterPacket(EventPacket in)
EventFilter2D
filterPacket
in class EventFilter2D
in
- the input packet
public int getMaxDtThreshold()
public void setMaxDtThreshold(int maxDtThreshold)
public int getMinDtThreshold()
public void setMinDtThreshold(int minDtThreshold)
public void initFilter()
EventFilter
initFilter
in class EventFilter
public void update(java.util.Observable o, java.lang.Object arg)
update
in interface java.util.Observer
public int getSearchDistance()
public java.awt.geom.Point2D.Float getTranslationVector()
public float getRotationRadPerSec()
public void setSearchDistance(int searchDistance)
public DirectionSelectiveFilter.MotionVectors getMotionVectors()
public boolean isSpeedControlEnabled()
public void setSpeedControlEnabled(boolean speedControlEnabled)
public boolean isShowGlobalEnabled()
public void setShowGlobalEnabled(boolean showGlobalEnabled)
public boolean isShowVectorsEnabled()
public void setShowVectorsEnabled(boolean showVectorsEnabled)
public float getPpsScale()
public void setPpsScale(float ppsScale)
public float getSpeedMixingFactor()
public void setSpeedMixingFactor(float speedMixingFactor)
public int getExcessSpeedRejectFactor()
public void setExcessSpeedRejectFactor(int excessSpeedRejectFactor)
public int getTauLow()
public void setTauLow(int tauLow)
public boolean isShowRawInputEnabled()
public void setShowRawInputEnabled(boolean showRawInputEnabled)
public boolean isUseAvgDtEnabled()
public void setUseAvgDtEnabled(boolean useAvgDtEnabled)
public int getSubSampleShift()
public void setSubSampleShift(int subSampleShift)
subSampleShift
- the number of bits, 0 means no subsampling
|
jAER project on SourceForge | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |