/** * Detector for a grid of square targets. All squares must be entirely visible inside the image. * * @see boofcv.alg.fiducial.calib.grid.DetectSquareGridFiducial * * @param config Configuration for chessboard detector * @return Square grid target detector. */ public static CalibrationDetectorSquareGrid squareGrid(ConfigSquareGrid config) { config.checkValidity(); return new CalibrationDetectorSquareGrid(config); }
/** * Detector for asymmetric grid of circles. All circles must be entirely inside of the image. * * @param config Configuration for target * @return The detector */ public static CalibrationDetectorCircleAsymmGrid circleAsymmGrid( ConfigCircleAsymmetricGrid config ) { config.checkValidity(); return new CalibrationDetectorCircleAsymmGrid(config); } }
/** * Detector for a grid of binary targets. Allows for squares to be obscured or partially outside of the * image. * * @see CalibrationDetectorSquareFiducialGrid * * @param config Configuration of binary target * @return Detector for binary grid target */ public static CalibrationDetectorSquareFiducialGrid binaryGrid(ConfigSquareGridBinary config ) { config.checkValidity(); return new CalibrationDetectorSquareFiducialGrid(config); }
public void configure(int numRows, int numCols ) { config = new ConfigChessboard(numRows, numCols, 1); }
@Override protected GrayU8 getBinaryImage() { return detector.getDetector().getBinary(); }
@Override protected GrayU8 getBinaryImage() { return detector.getDetector().getBinary(); }
/** * Detector for chessboard targets. Squares can be partially outside, but inside corners must be entirely * inside the image. * * @see DetectChessboardFiducial * * @param config Configuration for chessboard detector * @return Square grid target detector. */ public static CalibrationDetectorChessboard chessboard(ConfigChessboard config ) { config.checkValidity(); return new CalibrationDetectorChessboard(config); }
@Override protected boolean process(GrayF32 image) { return detector.process(image); }
@Override protected boolean process(GrayF32 image) { return detector.process(image); }
@Override protected List<Point2D_F64> getCalibrationPoints() { return detector.getKeypointFinder().getKeyPoints().toList(); }
@Override protected List<Point2D_F64> getCalibrationPoints() { return detector.getKeypointFinder().getKeyPoints().toList(); }
public DetectCalibrationSquareGridApp(int numRows , int numColumns , double squareWidth, double spaceWidth, boolean forCalibration , List<String> exampleInputs) { super(exampleInputs); config = new ConfigSquareGrid(numRows, numColumns, squareWidth,spaceWidth); setUpGui(new DetectCalibrationPolygonPanel(numRows,numColumns,config.square,config.thresholding)); declareDetector(); }
public CalibrationDetectorSquareFiducialGrid(ConfigSquareGridBinary config) { DetectFiducialSquareBinary<GrayF32> fiducialDetector = FactoryFiducial. squareBinary(config.configDetector, config.configThreshold, GrayF32.class).getAlgorithm(); detector = new DetectFiducialSquareGrid<>(config.numRows,config.numCols,config.ids,fiducialDetector); numRows = config.numRows; numCols = config.numCols; numPointRows = 2*numRows; numPointCols = 2*numCols; layoutPoints = CalibrationDetectorSquareGrid.createLayout(numRows, numCols, config.squareWidth, config.spaceWidth); }
public DetectCalibrationCircleHexagonalApp(int numRows , int numColumns , double circleDiameter, double centerDistance, List<String> exampleInputs) { super(exampleInputs); setUpGui(new DetectCalibrationCirclePanel(numRows,numColumns,circleDiameter,centerDistance,true)); config = new ConfigCircleHexagonalGrid(numRows, numColumns, circleDiameter, centerDistance); controlPanel.threshold.setConfiguration(config.thresholding); declareDetector(); colorId = new Color[]{Color.RED,Color.BLUE,Color.CYAN,Color.ORANGE}; }
public DetectCalibrationCircleRegularApp(int numRows , int numColumns , double circleDiameter, double centerDistance, List<String> exampleInputs) { super(exampleInputs); setUpGui(new DetectCalibrationCirclePanel(numRows,numColumns,circleDiameter,centerDistance,false)); config = new ConfigCircleRegularGrid(numRows, numColumns, circleDiameter, centerDistance); controlPanel.threshold.setConfiguration(config.thresholding); declareDetector(); colorId = new Color[]{Color.RED,Color.BLUE,Color.CYAN,Color.ORANGE}; }
public BoofCVChessboardPoseEstimator(int rows, int cols, double gridWidth) { ConfigChessboard config; this.gridWidth=gridWidth; config = new ConfigChessboard(cols, rows, gridWidth); detector = FactoryFiducial.calibChessboard(config, GrayF32.class); }
@Override protected List<EllipseRotated_F64> getFoundEllipses() { return detector.getDetector().getEllipseDetector().getFoundEllipses(null); }
@Override protected List<EllipseRotated_F64> getFoundEllipses() { return detector.getDetector().getEllipseDetector().getFoundEllipses(null); }
public BoofCVChessboardPoseEstimator(int rows, int cols, double gridWidth) { ConfigChessboard config; this.gridWidth=gridWidth; config = new ConfigChessboard(cols, rows, gridWidth); detector = FactoryFiducial.calibChessboard(config, GrayF32.class); }
public DetectCalibrationChessboardApp( int numRows , int numColumns , List<String> exampleInputs) { super(exampleInputs); config = new ConfigChessboard(numRows, numColumns, 1); setUpGui(new DetectCalibrationPolygonPanel(numRows,numColumns,config.square,config.thresholding)); declareDetector(); }