|
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.filter.SubSamplingBandpassFilter
public class SubSamplingBandpassFilter
Does an event-based spatio-temporal highpass filter,
so that only small isolated objects pass through.
Uses a subsampled surround for very high efficiency.
Incoming events are subsampled and their times are stored in a subsample
event time map. Each entry in this map keeps track of the latest event time for this
subsampled location, thus it represents activity in this region of input space.
This map is used to determine if an event has been preceeded
by surrouding activity. The use of prior subsampling means that only a
small number of memory locations need to be checked to see if the event has sufficiently small
surround activity.
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 | |
---|---|
SubSamplingBandpassFilter(AEChip c)
Creates a new instance of SubSamplingBandpassFilter |
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 |
getDtSurround()
|
java.lang.Object |
getFilterState()
should return the filter state in some useful form |
float |
getRateMixingFactor()
|
int |
getSurroundRadius()
|
float |
getsurroundRateThresholdHz()
|
int |
getSurroundScale()
|
void |
initFilter()
this should allocate and initialize memory: it may be called when the chip e.g. |
boolean |
isShowAnnotationEnabled()
|
boolean |
isWarnNonMonotonicTimestamp()
|
void |
resetFilter()
should reset the filter to initial state |
void |
setDtSurround(int dtSurround)
sets the time in timestamp ticks (1us at present) that a spike in surround will inhibit a spike from center passing through. |
void |
setFilterEnabled(boolean yes)
Resets the filter |
void |
setRateMixingFactor(float rateMixingFactor)
|
void |
setShowAnnotationEnabled(boolean showAnnotationEnabled)
|
void |
setSurroundRadius(int surroundRadius)
sets the surround radius. |
void |
setsurroundRateThresholdHz(float surroundRateThresholdHz)
If the surround spike rate exceeds this value in Hz then the spike is filtered out (it is inhibited) |
void |
setSurroundScale(int surroundScale)
Set the scale of the surround map subsampling in bits. |
void |
setWarnNonMonotonicTimestamp(boolean warnNonMonotonicTimestamp)
|
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 |
Constructor Detail |
---|
public SubSamplingBandpassFilter(AEChip c)
Method Detail |
---|
public static java.lang.String getDescription()
public void setFilterEnabled(boolean yes)
EventFilter2D
setFilterEnabled
in class EventFilter2D
yes
- true to resetEventFilter.setPreferredEnabledState()
public java.lang.Object getFilterState()
EventFilter
getFilterState
in class EventFilter
public void resetFilter()
EventFilter
resetFilter
in class EventFilter
public void update(java.util.Observable o, java.lang.Object arg)
update
in interface java.util.Observer
public void initFilter()
EventFilter
initFilter
in class EventFilter
public int getDtSurround()
public void setDtSurround(int dtSurround)
dtSurround
- the time in uspublic int getSurroundScale()
public void setSurroundScale(int surroundScale)
surroundScale
- the number of bits of subsampling, e.g. 1 means subsample every 2x2 area to a single address.public int getSurroundRadius()
public void setSurroundRadius(int surroundRadius)
surroundRadius
- the radius in pixels for a square area. 1 is 8 pixels (3x3 minus center), etc.setSurroundScale(int)
public EventPacket filterPacket(EventPacket in)
EventFilter2D
filterPacket
in class EventFilter2D
in
- the input packet
public 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 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 boolean isShowAnnotationEnabled()
public void setShowAnnotationEnabled(boolean showAnnotationEnabled)
public boolean isWarnNonMonotonicTimestamp()
public void setWarnNonMonotonicTimestamp(boolean warnNonMonotonicTimestamp)
public float getsurroundRateThresholdHz()
public void setsurroundRateThresholdHz(float surroundRateThresholdHz)
public float getRateMixingFactor()
public void setRateMixingFactor(float rateMixingFactor)
|
jAER project on SourceForge | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |