Search in sources :

Example 1 with HammingChessboardGenerator

use of boofcv.alg.fiducial.calib.hammingchess.HammingChessboardGenerator in project BoofCV by lessthanoptimal.

the class CreateHammingChessboardDocumentPDF method configureRenderer.

@Override
protected void configureRenderer(PdfFiducialEngine renderer) {
    if (markerHeight < 0)
        throw new IllegalArgumentException("Must specify marker height even if square");
    this.renderer = renderer;
    config.squareSize = squareWidth * UNIT_TO_POINTS;
    g = new HammingChessboardGenerator(config);
    g.setRender(renderer);
}
Also used : HammingChessboardGenerator(boofcv.alg.fiducial.calib.hammingchess.HammingChessboardGenerator)

Example 2 with HammingChessboardGenerator

use of boofcv.alg.fiducial.calib.hammingchess.HammingChessboardGenerator in project BoofCV by lessthanoptimal.

the class UtilCalibrationGui method renderTargetBuffered.

public static BufferedImage renderTargetBuffered(CalibrationPatterns type, Object config, int squareWidth) {
    int circle = squareWidth / 2;
    if (type == CalibrationPatterns.ECOCHECK) {
        ConfigECoCheckMarkers c = (ConfigECoCheckMarkers) config;
        ECoCheckUtils utils = new ECoCheckUtils();
        utils.codec.setErrorCorrectionLevel(c.errorCorrectionLevel);
        utils.codec.setChecksumBitCount(c.checksumBits);
        c.convertToGridList(utils.markers);
        utils.fixate();
        ConfigECoCheckMarkers.MarkerShape shape = c.markerShapes.get(0);
        int markerWidth = squareWidth * (shape.numCols - 1);
        int markerHeight = squareWidth * (shape.numRows - 1);
        FiducialRenderEngineGraphics2D render = configureRenderGraphics2D(markerWidth, markerHeight, squareWidth / 2);
        ECoCheckGenerator generator = new ECoCheckGenerator(utils);
        generator.squareWidth = squareWidth;
        generator.setRender(render);
        generator.render(0);
        return render.getImage();
    } else if (type == CalibrationPatterns.HAMMING_CHESSBOARD) {
        ConfigHammingChessboard c = (ConfigHammingChessboard) config;
        int markerWidth = squareWidth * c.numCols;
        int markerHeight = squareWidth * c.numRows;
        FiducialRenderEngineGraphics2D render = configureRenderGraphics2D(markerWidth, markerHeight, squareWidth / 2);
        HammingChessboardGenerator generator = new HammingChessboardGenerator(c);
        generator.squareWidth = squareWidth;
        generator.setRender(render);
        generator.render();
        return render.getImage();
    } else if (type == CalibrationPatterns.HAMMING_GRID) {
        ConfigHammingGrid c = (ConfigHammingGrid) config;
        int markerWidth = (int) Math.round(squareWidth * c.getMarkerWidth() / c.squareSize);
        int markerHeight = (int) Math.round(squareWidth * c.getMarkerHeight() / c.squareSize);
        FiducialRenderEngineGraphics2D render = configureRenderGraphics2D(markerWidth, markerHeight, squareWidth / 2);
        var generator = new HammingGridGenerator(c);
        generator.squareWidth = squareWidth;
        generator.setRender(render);
        generator.render();
        return render.getImage();
    }
    final RenderCalibrationTargetsGraphics2D renderer = new RenderCalibrationTargetsGraphics2D(20, 1);
    if (type == CalibrationPatterns.CHESSBOARD) {
        ConfigGridDimen c = (ConfigGridDimen) config;
        renderer.chessboard(c.numRows, c.numCols, squareWidth);
    } else if (type == CalibrationPatterns.SQUARE_GRID) {
        ConfigGridDimen c = (ConfigGridDimen) config;
        double space = squareWidth * c.shapeDistance / c.shapeSize;
        renderer.squareGrid(c.numRows, c.numCols, squareWidth, space);
    } else if (type == CalibrationPatterns.CIRCLE_GRID) {
        ConfigGridDimen c = (ConfigGridDimen) config;
        double space = circle * c.shapeDistance / c.shapeSize;
        renderer.circleRegular(c.numRows, c.numCols, circle, space);
    } else if (type == CalibrationPatterns.CIRCLE_HEXAGONAL) {
        ConfigGridDimen c = (ConfigGridDimen) config;
        double space = circle * c.shapeDistance / c.shapeSize;
        renderer.circleHex(c.numRows, c.numCols, circle, space);
    }
    return renderer.getBuffered();
}
Also used : ConfigGridDimen(boofcv.abst.fiducial.calib.ConfigGridDimen) FiducialRenderEngineGraphics2D(boofcv.gui.FiducialRenderEngineGraphics2D) ECoCheckUtils(boofcv.alg.fiducial.calib.ecocheck.ECoCheckUtils) ConfigHammingGrid(boofcv.factory.fiducial.ConfigHammingGrid) ConfigHammingChessboard(boofcv.factory.fiducial.ConfigHammingChessboard) HammingChessboardGenerator(boofcv.alg.fiducial.calib.hammingchess.HammingChessboardGenerator) RenderCalibrationTargetsGraphics2D(boofcv.gui.RenderCalibrationTargetsGraphics2D) ConfigECoCheckMarkers(boofcv.abst.fiducial.calib.ConfigECoCheckMarkers) ECoCheckGenerator(boofcv.alg.fiducial.calib.ecocheck.ECoCheckGenerator) HammingGridGenerator(boofcv.alg.fiducial.calib.hamminggrids.HammingGridGenerator)

Aggregations

HammingChessboardGenerator (boofcv.alg.fiducial.calib.hammingchess.HammingChessboardGenerator)2 ConfigECoCheckMarkers (boofcv.abst.fiducial.calib.ConfigECoCheckMarkers)1 ConfigGridDimen (boofcv.abst.fiducial.calib.ConfigGridDimen)1 ECoCheckGenerator (boofcv.alg.fiducial.calib.ecocheck.ECoCheckGenerator)1 ECoCheckUtils (boofcv.alg.fiducial.calib.ecocheck.ECoCheckUtils)1 HammingGridGenerator (boofcv.alg.fiducial.calib.hamminggrids.HammingGridGenerator)1 ConfigHammingChessboard (boofcv.factory.fiducial.ConfigHammingChessboard)1 ConfigHammingGrid (boofcv.factory.fiducial.ConfigHammingGrid)1 FiducialRenderEngineGraphics2D (boofcv.gui.FiducialRenderEngineGraphics2D)1 RenderCalibrationTargetsGraphics2D (boofcv.gui.RenderCalibrationTargetsGraphics2D)1