Package boofcv.alg.sfm.d3.direct
Class PyramidDirectColorDepth<T extends ImageGray<T>>
java.lang.Object
boofcv.alg.sfm.d3.direct.PyramidDirectColorDepth<T>
public class PyramidDirectColorDepth<T extends ImageGray<T>> extends Object
Adds a pyramidal implementation on top of VisOdomDirectColorDepth
to enable it to handle larger motions
which its local approach couldn't handle in a single layer. Highest layers (lowest resolution) are processed
first. Their estimated motion is then passed into the next layers for its initial guess.
Selection of keyframes is a critical problem. A global keyframe is used for all pixels. if Keyframes are selected too often then performance will be degraded and not often enough can cause it to fail completely. A new keyframe is selected when the number of trackable pixels drops below a threshold or the it's spatial diversity has dropped too low
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
PyramidDirectColorDepth.LayerTo3D
-
Constructor Summary
Constructors Constructor Description PyramidDirectColorDepth(ImagePyramid<Planar<T>> pyramid)
-
Method Summary
Modifier and Type Method Description protected boolean
estimateMotion()
double
getFractionInBounds()
ImageType<Planar<T>>
getInputType()
boolean
isFatalError()
boolean
process(Planar<T> input, ImagePixelTo3D inputDepth)
void
reset()
void
setCameraParameters(float fx, float fy, float cx, float cy, int width, int height)
void
setDiversityThreshold(double diversityThreshold)
protected void
setKeyFrame(ImagePixelTo3D inputDepth)
Se3_F32
worldToCurrent()
-
Constructor Details
-
PyramidDirectColorDepth
-
-
Method Details
-
setCameraParameters
public void setCameraParameters(float fx, float fy, float cx, float cy, int width, int height) -
process
-
setKeyFrame
-
estimateMotion
protected boolean estimateMotion() -
isFatalError
public boolean isFatalError() -
worldToCurrent
-
getInputType
-
reset
public void reset() -
setDiversityThreshold
public void setDiversityThreshold(double diversityThreshold) -
getFractionInBounds
public double getFractionInBounds()
-