|
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.HarmonicFilter
public class HarmonicFilter
An AE filter that filters out boring events caused by global flickering illumination. This filter measures the global event activity to obtain the phase and amplitude of flicker. If the amplitude exceeds a threashold, then events around the peak activity are filtered away. The phase and amplitude are computed by one of two methods.
The first uses a global harmonic oscillator with adjustable resonant frequency (set by user to double line frequency) and adjustable quality factor Q. This resonator is driven by ON and OFF events in opposite directions. It resonates with a phase such that it crosses zero at the peak of ON and OFF activities. During a zero crossing, events are filtered away.
The second method (planned, not yet implemented) histograms events into a cyclic histogram whose period is set as a parameter (e.g. 10 ms for 50 Hz illumination with line doubling). The histogram peaks tell the filter where to reject events. The histogram is forgotten slowly by periodically decaying all values. This method is not as physical and introduces a kind of 'frame' for forgetting, but it is slightly cheaper to compute.
Nested Class Summary | |
---|---|
class |
HarmonicFilter.HarmonicOscillator
|
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 | |
---|---|
HarmonicFilter(AEChip chip)
|
Method Summary | |
---|---|
EventPacket |
filterPacket(EventPacket in)
Subclasses implement this method to define custom processing. |
static java.lang.String |
getDescription()
|
java.lang.Object |
getFilterState()
returns array of last event times, x,y,type,[t0,t1], where t0/t1 are the last two event times, t0 first. |
float |
getFreq()
|
float |
getQuality()
|
float |
getThreshold()
|
void |
initFilter()
this should allocate and initialize memory: it may be called when the chip e.g. |
boolean |
isGeneratingFilter()
|
boolean |
isPrintStats()
|
void |
resetFilter()
should reset the filter to initial state |
void |
setFilterEnabled(boolean yes)
Resets the filter |
void |
setFreq(float f)
|
void |
setPrintStats(boolean printStats)
|
void |
setQuality(float q)
|
void |
setThreshold(float threshold)
|
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 |
Constructor Detail |
---|
public HarmonicFilter(AEChip chip)
Method Detail |
---|
public static java.lang.String getDescription()
public boolean isGeneratingFilter()
public void setFilterEnabled(boolean yes)
EventFilter2D
setFilterEnabled
in class EventFilter2D
yes
- true to resetEventFilter.setPreferredEnabledState()
public java.lang.Object getFilterState()
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 float getThreshold()
public void setThreshold(float threshold)
public float getQuality()
public void setQuality(float q)
public float getFreq()
public void setFreq(float f)
public boolean isPrintStats()
public void setPrintStats(boolean printStats)
public EventPacket filterPacket(EventPacket in)
EventFilter2D
filterPacket
in class EventFilter2D
in
- the input packet
|
jAER project on SourceForge | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |