|
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.stereopsis.DisparityFilter
public class DisparityFilter
The filter calculates x-coordinate disparities for every single event, by averaging over disparities of previous events in the local neighborhood. Therefore the disparites of single events should be spatially and temporally smooth. First, the algorithm calculates a weighted average of previous disparity values in the neighborhood (= oldMeanDisp). The weight depends on the time difference between the actual and the previous events, s.t. recent events will have more weight. Depending on the mean time difference from the previous events, the search range for the actual stereomatching will be restricted around oldMeanDisp. The disparity of the actual event is then calculated by a linear interpolation between the best match in the restricted search range and oldMeanDisp. Because looking at all points in a certain radius is too expansive for neighborhood computation, only a sparse set of surrounding points will be evaluated. These points are stored in the file 'neighbors.dat'. New sets of points can be generated easyly by using the matlab 'function neighborhoodCreator.m'.
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 | |
---|---|
DisparityFilter(AEChip chip)
Creates a new instance of GlobalXDisparityFilter3 |
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. |
int |
getDisparity()
|
float |
getDistFactor()
|
java.lang.Object |
getFilterState()
should return the filter state in some useful form |
int |
getMaxDisp()
|
float |
getRangeFactor()
|
float |
getSmoothFactor()
|
void |
initFilter()
this should allocate and initialize memory: it may be called when the chip e.g. |
boolean |
isGeneratingFilter()
|
void |
resetFilter()
should reset the filter to initial state |
void |
setDistFactor(float distFactor)
Set the scaling factor for the event correlation depending on time difference. |
void |
setMaxDisp(int maxDisp)
Maximal disparity which is considered for event matching. |
void |
setRangeFactor(float rf)
|
void |
setSmoothFactor(float smoothFactor)
This factor weights the influence of disparities from neigbouring events. |
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 |
Constructor Detail |
---|
public DisparityFilter(AEChip chip)
Method Detail |
---|
public void initFilter()
EventFilter
initFilter
in class EventFilter
public void resetFilter()
EventFilter
resetFilter
in class EventFilter
public java.lang.Object getFilterState()
EventFilter
getFilterState
in class EventFilter
public boolean isGeneratingFilter()
public void update(java.util.Observable o, java.lang.Object arg)
update
in interface java.util.Observer
public void setDistFactor(float distFactor)
public float getDistFactor()
public void setRangeFactor(float rf)
public float getRangeFactor()
public void setSmoothFactor(float smoothFactor)
public float getSmoothFactor()
public void setMaxDisp(int maxDisp)
public int getMaxDisp()
public int getDisparity()
public EventPacket filterPacket(EventPacket in)
EventFilter2D
filterPacket
in class EventFilter2D
in
- the input packet
public void annotate(java.awt.Graphics2D g)
FrameAnnotater
annotate
in interface FrameAnnotater
g
- the Graphics2D contextpublic 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(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., GLCanvas
|
jAER project on SourceForge | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |