use of boofcv.struct.sfm.PlanePtPixel in project BoofCV by lessthanoptimal.
the class FactoryVisualOdometry method monoPlaneInfinity.
/**
* Monocular plane based visual odometry algorithm which uses both points on the plane and off plane for motion
* estimation.
*
* @see VisOdomMonoPlaneInfinity
*
* @param thresholdAdd New points are spawned when the number of on plane inliers drops below this value.
* @param thresholdRetire Tracks are dropped when they are not contained in the inlier set for this many frames
* in a row. Try 2
* @param inlierPixelTol Threshold used to determine inliers in pixels. Try 1.5
* @param ransacIterations Number of RANSAC iterations. Try 200
* @param tracker Image feature tracker
* @param imageType Type of input image it processes
* @param <T>
* @return New instance of
*/
public static <T extends ImageGray<T>> MonocularPlaneVisualOdometry<T> monoPlaneInfinity(int thresholdAdd, int thresholdRetire, double inlierPixelTol, int ransacIterations, PointTracker<T> tracker, ImageType<T> imageType) {
// squared pixel error
double ransacTOL = inlierPixelTol * inlierPixelTol;
ModelManagerSe2_F64 manager = new ModelManagerSe2_F64();
DistancePlane2DToPixelSq distance = new DistancePlane2DToPixelSq();
GenerateSe2_PlanePtPixel generator = new GenerateSe2_PlanePtPixel();
ModelMatcher<Se2_F64, PlanePtPixel> motion = new Ransac<>(2323, manager, generator, distance, ransacIterations, ransacTOL);
VisOdomMonoPlaneInfinity<T> alg = new VisOdomMonoPlaneInfinity<>(thresholdAdd, thresholdRetire, inlierPixelTol, motion, tracker);
return new MonoPlaneInfinity_to_MonocularPlaneVisualOdometry<>(alg, distance, generator, imageType);
}
Aggregations