Search in sources :

Example 11 with BTrack

use of boofcv.alg.sfm.d3.structure.VisOdomBundleAdjustment.BTrack in project BoofCV by lessthanoptimal.

the class TestVisOdomBundleAdjustment method getLastFrame.

@Test
void getLastFrame() {
    VisOdomBundleAdjustment<BTrack> alg = createAlgSingleCamera();
    BFrame frameA = alg.frames.grow();
    assertSame(frameA, alg.getLastFrame());
    BFrame frameB = alg.frames.grow();
    assertSame(frameB, alg.getLastFrame());
}
Also used : BFrame(boofcv.alg.sfm.d3.structure.VisOdomBundleAdjustment.BFrame) BTrack(boofcv.alg.sfm.d3.structure.VisOdomBundleAdjustment.BTrack) Test(org.junit.jupiter.api.Test)

Example 12 with BTrack

use of boofcv.alg.sfm.d3.structure.VisOdomBundleAdjustment.BTrack in project BoofCV by lessthanoptimal.

the class TestVisOdomBundleAdjustment method addTrack.

@Test
void addTrack() {
    VisOdomBundleAdjustment<BTrack> alg = createAlgSingleCamera();
    BTrack trackA = alg.addTrack(1, 2, 3, 3);
    BTrack trackB = alg.addTrack(1, 2, 3, 4);
    BTrack trackC = alg.addTrack(1, 2, 3, 5);
    assertEquals(3, alg.tracks.size);
    assertTrue(alg.tracks.contains(trackA));
    assertTrue(alg.tracks.contains(trackB));
    assertTrue(alg.tracks.contains(trackC));
    assertEquals(0.0, trackB.worldLoc.distance(new Point4D_F64(1, 2, 3, 4)), UtilEjml.TEST_F64);
    assertEquals(0.0, trackC.worldLoc.distance(new Point4D_F64(1, 2, 3, 5)), UtilEjml.TEST_F64);
    trackA.observations.grow();
    trackB.observations.grow();
    // Test recycle
    alg.reset();
    trackA = alg.addTrack(2, 2, 3, 3);
    trackB = alg.addTrack(2, 2, 3, 4);
    trackC = alg.addTrack(2, 2, 3, 5);
    assertTrue(alg.tracks.contains(trackA));
    assertTrue(alg.tracks.contains(trackB));
    assertTrue(alg.tracks.contains(trackC));
    assertEquals(0, trackB.observations.size);
    assertEquals(0.0, trackB.worldLoc.distance(new Point4D_F64(2, 2, 3, 4)), UtilEjml.TEST_F64);
    assertEquals(0, trackC.observations.size);
    assertEquals(0.0, trackC.worldLoc.distance(new Point4D_F64(2, 2, 3, 5)), UtilEjml.TEST_F64);
}
Also used : Point4D_F64(georegression.struct.point.Point4D_F64) BTrack(boofcv.alg.sfm.d3.structure.VisOdomBundleAdjustment.BTrack) Test(org.junit.jupiter.api.Test)

Example 13 with BTrack

use of boofcv.alg.sfm.d3.structure.VisOdomBundleAdjustment.BTrack in project BoofCV by lessthanoptimal.

the class TestVisOdomBundleAdjustment method getFirstFrame.

@Test
void getFirstFrame() {
    VisOdomBundleAdjustment<BTrack> alg = createAlgSingleCamera();
    BFrame frameA = alg.frames.grow();
    assertSame(frameA, alg.getFirstFrame());
    alg.frames.grow();
    assertSame(frameA, alg.getFirstFrame());
}
Also used : BFrame(boofcv.alg.sfm.d3.structure.VisOdomBundleAdjustment.BFrame) BTrack(boofcv.alg.sfm.d3.structure.VisOdomBundleAdjustment.BTrack) Test(org.junit.jupiter.api.Test)

Example 14 with BTrack

use of boofcv.alg.sfm.d3.structure.VisOdomBundleAdjustment.BTrack in project BoofCV by lessthanoptimal.

the class TestMaxGeoKeyFrameManager method connectFrames.

public static void connectFrames(int a, int b, int count, VisOdomBundleAdjustment<BTrack> scene) {
    BFrame frameA = scene.frames.get(a);
    BFrame frameB = scene.frames.get(b);
    for (int i = 0; i < count; i++) {
        BTrack track = scene.tracks.grow();
        // crash hard if it's used
        track.id = -1;
        track.observations.grow().frame = frameA;
        track.observations.grow().frame = frameB;
        frameA.tracks.add(track);
        frameB.tracks.add(track);
    }
}
Also used : BFrame(boofcv.alg.sfm.d3.structure.VisOdomBundleAdjustment.BFrame) BTrack(boofcv.alg.sfm.d3.structure.VisOdomBundleAdjustment.BTrack)

Example 15 with BTrack

use of boofcv.alg.sfm.d3.structure.VisOdomBundleAdjustment.BTrack in project BoofCV by lessthanoptimal.

the class VisOdomMonoDepthPnP method handleDroppedVisualTracks.

private void handleDroppedVisualTracks() {
    tmpVisualTracks.clear();
    tracker.getDroppedTracks(tmpVisualTracks);
    for (int i = 0; i < tmpVisualTracks.size(); i++) {
        // Tell the bundle track that they are no longer associated with a visual track
        BTrack bt = tmpVisualTracks.get(i).getCookie();
        bt.visualTrack = null;
    }
}
Also used : BTrack(boofcv.alg.sfm.d3.structure.VisOdomBundleAdjustment.BTrack)

Aggregations

BTrack (boofcv.alg.sfm.d3.structure.VisOdomBundleAdjustment.BTrack)25 BFrame (boofcv.alg.sfm.d3.structure.VisOdomBundleAdjustment.BFrame)13 Test (org.junit.jupiter.api.Test)12 CameraPinholeBrown (boofcv.struct.calib.CameraPinholeBrown)4 DogArray_I32 (org.ddogleg.struct.DogArray_I32)4 BObservation (boofcv.alg.sfm.d3.structure.VisOdomBundleAdjustment.BObservation)3 VerbosePrint (org.ddogleg.struct.VerbosePrint)3 PointTrack (boofcv.abst.tracker.PointTrack)1 LensDistortionPinhole (boofcv.alg.distort.pinhole.LensDistortionPinhole)1 Info (boofcv.alg.sfm.d3.structure.SelectTracksInFrameForBundleAdjustment.Info)1 Point2Transform2_F64 (boofcv.struct.distort.Point2Transform2_F64)1 UtilPoint3D_F64 (georegression.geometry.UtilPoint3D_F64)1 Point2D_F64 (georegression.struct.point.Point2D_F64)1 Point3D_F64 (georegression.struct.point.Point3D_F64)1 Point4D_F64 (georegression.struct.point.Point4D_F64)1 ArrayList (java.util.ArrayList)1