Search in sources :

Example 16 with Grid

use of boofcv.alg.fiducial.calib.circle.EllipseClustersIntoGrid.Grid in project BoofCV by lessthanoptimal.

the class TestKeyPointsCircleRegularGrid method vertical.

@Test
public void vertical() {
    int numRows = 3, numCols = 4;
    double space = 3, r = 1;
    Grid g = createGrid(numRows, numCols, space, r);
    KeyPointsCircleRegularGrid alg = new KeyPointsCircleRegularGrid();
    alg.init(g);
    assertTrue(alg.vertical(g));
    for (int row = 0; row < numRows; row++) {
        for (int col = 0; col < numCols; col++) {
            Tangents t = alg.getTangents().get(row * numCols + col);
            if (row == 0 || row == numRows - 1) {
                assertEquals(1, t.countL);
                assertEquals(1, t.countR);
            } else {
                assertEquals(2, t.countL);
                assertEquals(2, t.countR);
            }
        }
    }
}
Also used : Tangents(boofcv.alg.fiducial.calib.circle.KeyPointsCircleRegularGrid.Tangents) Grid(boofcv.alg.fiducial.calib.circle.EllipseClustersIntoGrid.Grid) Test(org.junit.Test)

Example 17 with Grid

use of boofcv.alg.fiducial.calib.circle.EllipseClustersIntoGrid.Grid in project BoofCV by lessthanoptimal.

the class TestKeyPointsCircleRegularGrid method horizontal.

@Test
public void horizontal() {
    int numRows = 3, numCols = 4;
    double space = 3, r = 1;
    Grid g = createGrid(numRows, numCols, space, r);
    KeyPointsCircleRegularGrid alg = new KeyPointsCircleRegularGrid();
    alg.init(g);
    assertTrue(alg.horizontal(g));
    for (int row = 0; row < numRows; row++) {
        for (int col = 0; col < numCols; col++) {
            Tangents t = alg.getTangents().get(row * numCols + col);
            if (col == 0 || col == numCols - 1) {
                assertEquals(1, t.countT);
                assertEquals(1, t.countB);
            } else {
                assertEquals(2, t.countT);
                assertEquals(2, t.countB);
            }
        }
    }
}
Also used : Tangents(boofcv.alg.fiducial.calib.circle.KeyPointsCircleRegularGrid.Tangents) Grid(boofcv.alg.fiducial.calib.circle.EllipseClustersIntoGrid.Grid) Test(org.junit.Test)

Example 18 with Grid

use of boofcv.alg.fiducial.calib.circle.EllipseClustersIntoGrid.Grid in project BoofCV by lessthanoptimal.

the class CalibrationDetectorCircleHexagonalGrid method process.

@Override
public boolean process(GrayF32 input) {
    results = new CalibrationObservation(input.width, input.height);
    detector.process(input);
    List<Grid> grids = detector.getGrids();
    if (grids.size() != 1)
        return false;
    if (!keypoint.process(grids.get(0)))
        return false;
    FastQueue<Point2D_F64> foundPixels = keypoint.getKeyPoints();
    for (int i = 0; i < foundPixels.size; i++) {
        results.add(foundPixels.get(i), i);
    }
    return true;
}
Also used : Point2D_F64(georegression.struct.point.Point2D_F64) KeyPointsCircleHexagonalGrid(boofcv.alg.fiducial.calib.circle.KeyPointsCircleHexagonalGrid) DetectCircleHexagonalGrid(boofcv.alg.fiducial.calib.circle.DetectCircleHexagonalGrid) Grid(boofcv.alg.fiducial.calib.circle.EllipseClustersIntoGrid.Grid) CalibrationObservation(boofcv.alg.geo.calibration.CalibrationObservation)

Example 19 with Grid

use of boofcv.alg.fiducial.calib.circle.EllipseClustersIntoGrid.Grid in project BoofCV by lessthanoptimal.

the class CalibrationDetectorCircleRegularGrid method process.

@Override
public boolean process(GrayF32 input) {
    results = new CalibrationObservation(input.width, input.height);
    detector.process(input);
    List<Grid> grids = detector.getGrids();
    if (grids.size() != 1)
        return false;
    if (!keypoint.process(grids.get(0)))
        return false;
    FastQueue<Point2D_F64> foundPixels = keypoint.getKeyPoints();
    for (int i = 0; i < foundPixels.size; i++) {
        results.add(foundPixels.get(i), i);
    }
    return true;
}
Also used : Point2D_F64(georegression.struct.point.Point2D_F64) KeyPointsCircleRegularGrid(boofcv.alg.fiducial.calib.circle.KeyPointsCircleRegularGrid) DetectCircleRegularGrid(boofcv.alg.fiducial.calib.circle.DetectCircleRegularGrid) Grid(boofcv.alg.fiducial.calib.circle.EllipseClustersIntoGrid.Grid) CalibrationObservation(boofcv.alg.geo.calibration.CalibrationObservation)

Example 20 with Grid

use of boofcv.alg.fiducial.calib.circle.EllipseClustersIntoGrid.Grid in project BoofCV by lessthanoptimal.

the class TestDetectCircleGrid method closestCorner4.

@Test
public void closestCorner4() {
    Grid g = new Grid();
    g.rows = 3;
    g.columns = 3;
    g.ellipses.add(new EllipseRotated_F64(20, 20, 0, 0, 0));
    g.ellipses.add(null);
    g.ellipses.add(new EllipseRotated_F64(20, 100, 0, 0, 0));
    g.ellipses.add(null);
    g.ellipses.add(new EllipseRotated_F64());
    g.ellipses.add(null);
    g.ellipses.add(new EllipseRotated_F64(100, 20, 0, 0, 0));
    g.ellipses.add(null);
    g.ellipses.add(new EllipseRotated_F64(100, 100, 0, 0, 0));
    assertEquals(0, DetectCircleGrid.closestCorner4(g));
    g.ellipses.get(0).center.set(20, 100);
    g.ellipses.get(2).center.set(100, 20);
    g.ellipses.get(6).center.set(100, 100);
    g.ellipses.get(8).center.set(20, 20);
    assertEquals(2, DetectCircleGrid.closestCorner4(g));
    g.ellipses.get(0).center.set(100, 20);
    g.ellipses.get(2).center.set(100, 100);
    g.ellipses.get(6).center.set(20, 20);
    g.ellipses.get(8).center.set(20, 100);
    assertEquals(1, DetectCircleGrid.closestCorner4(g));
    g.ellipses.get(0).center.set(100, 100);
    g.ellipses.get(2).center.set(20, 20);
    g.ellipses.get(6).center.set(20, 100);
    g.ellipses.get(8).center.set(100, 20);
    assertEquals(3, DetectCircleGrid.closestCorner4(g));
}
Also used : EllipseRotated_F64(georegression.struct.curve.EllipseRotated_F64) Grid(boofcv.alg.fiducial.calib.circle.EllipseClustersIntoGrid.Grid) TestDetectCircleHexagonalGrid.createGrid(boofcv.alg.fiducial.calib.circle.TestDetectCircleHexagonalGrid.createGrid) Test(org.junit.Test)

Aggregations

Grid (boofcv.alg.fiducial.calib.circle.EllipseClustersIntoGrid.Grid)33 EllipseRotated_F64 (georegression.struct.curve.EllipseRotated_F64)18 ArrayList (java.util.ArrayList)12 Test (org.junit.Test)7 Point2D_F64 (georegression.struct.point.Point2D_F64)6 TestDetectCircleHexagonalGrid.createGrid (boofcv.alg.fiducial.calib.circle.TestDetectCircleHexagonalGrid.createGrid)4 List (java.util.List)4 SquareGrid (boofcv.alg.fiducial.calib.squares.SquareGrid)3 CalibrationDetectorCircleHexagonalGrid (boofcv.abst.fiducial.calib.CalibrationDetectorCircleHexagonalGrid)2 ConfigCircleHexagonalGrid (boofcv.abst.fiducial.calib.ConfigCircleHexagonalGrid)2 Tangents (boofcv.alg.fiducial.calib.circle.KeyPointsCircleRegularGrid.Tangents)2 CalibrationObservation (boofcv.alg.geo.calibration.CalibrationObservation)2 GrayU8 (boofcv.struct.image.GrayU8)2 CalibrationDetectorCircleRegularGrid (boofcv.abst.fiducial.calib.CalibrationDetectorCircleRegularGrid)1 ConfigCircleRegularGrid (boofcv.abst.fiducial.calib.ConfigCircleRegularGrid)1 DetectCircleHexagonalGrid (boofcv.alg.fiducial.calib.circle.DetectCircleHexagonalGrid)1 DetectCircleRegularGrid (boofcv.alg.fiducial.calib.circle.DetectCircleRegularGrid)1 NodeInfo (boofcv.alg.fiducial.calib.circle.EllipseClustersIntoGrid.NodeInfo)1 Node (boofcv.alg.fiducial.calib.circle.EllipsesIntoClusters.Node)1 KeyPointsCircleHexagonalGrid (boofcv.alg.fiducial.calib.circle.KeyPointsCircleHexagonalGrid)1