|
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 EventFilterpublic void resetFilter()
EventFilter
resetFilter in class EventFilterpublic java.lang.Object getFilterState()
EventFilter
getFilterState in class EventFilterpublic boolean isGeneratingFilter()
public void update(java.util.Observable o,
java.lang.Object arg)
update in interface java.util.Observerpublic 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 EventFilter2Din - the input packet
public void annotate(java.awt.Graphics2D g)
FrameAnnotater
annotate in interface FrameAnnotaterg - the Graphics2D contextpublic void annotate(float[][][] frame)
FrameAnnotater
annotate in interface FrameAnnotaterframe - 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 FrameAnnotaterdrawable - 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 | |||||||||