Search in sources :

Example 6 with ConfigPKlt

use of boofcv.alg.tracker.klt.ConfigPKlt in project BoofCV by lessthanoptimal.

the class VisualizeMonocularPlaneVisualOdometryApp method createVisualOdometry.

private MonocularPlaneVisualOdometry<I> createVisualOdometry(int whichAlg) {
    Class derivType = GImageDerivativeOps.getDerivativeType(imageClass);
    if (whichAlg == 0) {
        var config = new ConfigPlanarTrackPnP();
        config.tracker.typeTracker = ConfigPointTracker.TrackerType.KLT;
        config.tracker.klt.pyramidLevels = ConfigDiscreteLevels.levels(4);
        config.tracker.klt.templateRadius = 3;
        config.tracker.detDesc.detectPoint.type = PointDetectorTypes.SHI_TOMASI;
        config.tracker.detDesc.detectPoint.general.maxFeatures = 600;
        config.tracker.detDesc.detectPoint.general.radius = 3;
        config.tracker.detDesc.detectPoint.general.threshold = 1;
        config.thresholdAdd = 75;
        config.thresholdRetire = 2;
        config.ransac.iterations = 200;
        config.ransac.inlierThreshold = 1.5;
        return FactoryVisualOdometry.monoPlaneInfinity(config, imageClass);
    } else if (whichAlg == 1) {
        ConfigPKlt configKlt = new ConfigPKlt();
        configKlt.pyramidLevels = ConfigDiscreteLevels.levels(4);
        configKlt.templateRadius = 3;
        ConfigPointDetector configDetector = new ConfigPointDetector();
        configDetector.type = PointDetectorTypes.SHI_TOMASI;
        configDetector.general.maxFeatures = 600;
        configDetector.general.radius = 3;
        configDetector.general.threshold = 1;
        PointTracker<I> tracker = FactoryPointTracker.klt(configKlt, configDetector, imageClass, derivType);
        double cellSize = 0.06;
        double inlierGroundTol = 1.5;
        return FactoryVisualOdometry.monoPlaneOverhead(cellSize, 25, 0.7, inlierGroundTol, 300, 2, 100, 0.5, 0.6, tracker, imageType);
    } else {
        throw new RuntimeException("Unknown selection");
    }
}
Also used : ConfigPlanarTrackPnP(boofcv.factory.sfm.ConfigPlanarTrackPnP) ConfigPKlt(boofcv.alg.tracker.klt.ConfigPKlt) ConfigPointTracker(boofcv.factory.tracker.ConfigPointTracker) PointTracker(boofcv.abst.tracker.PointTracker) FactoryPointTracker(boofcv.factory.tracker.FactoryPointTracker) ConfigPointDetector(boofcv.abst.feature.detect.interest.ConfigPointDetector)

Aggregations

ConfigPKlt (boofcv.alg.tracker.klt.ConfigPKlt)6 ConfigPointDetector (boofcv.abst.feature.detect.interest.ConfigPointDetector)3 PointTrack (boofcv.abst.tracker.PointTrack)1 PointTracker (boofcv.abst.tracker.PointTracker)1 ConfigPlanarTrackPnP (boofcv.factory.sfm.ConfigPlanarTrackPnP)1 ConfigPointTracker (boofcv.factory.tracker.ConfigPointTracker)1 FactoryPointTracker (boofcv.factory.tracker.FactoryPointTracker)1 ImagePanel (boofcv.gui.image.ImagePanel)1 ConvertBufferedImage (boofcv.io.image.ConvertBufferedImage)1 GrayF32 (boofcv.struct.image.GrayF32)1 GrayU8 (boofcv.struct.image.GrayU8)1 Webcam (com.github.sarxos.webcam.Webcam)1 BufferedImage (java.awt.image.BufferedImage)1