/** * 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); }
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); }
@Override public void declareDetector() { config.thresholding = ((DetectCalibrationPolygonPanel)controlPanel).polygonPanel.getThresholdPanel().createConfig(); config.square = ((DetectCalibrationPolygonPanel)controlPanel).polygonPanel.getConfigPolygon(); config.numRows = controlPanel.getGridRows(); config.numCols = controlPanel.getGridColumns(); alg = FactoryFiducialCalibration.squareGrid(config).getAlgorithm(); reprocessImageOnly(); }
binary = alg.getBinary(); } else if( detector instanceof CalibrationDetectorSquareGrid) { DetectSquareGridFiducial<GrayF32> alg = ((CalibrationDetectorSquareGrid) detector).getAlgorithm(); extractQuads(alg.getDetectorSquare().getPolygons(null,null)); binary = alg.getBinary();
binary = ((CalibrationDetectorChessboard) a).getAlgorithm().getBinary(); } else if( a instanceof CalibrationDetectorSquareGrid ){ binary = ((CalibrationDetectorSquareGrid) a).getAlgorithm().getBinary(); } else if( a instanceof CalibrationDetectorCircleHexagonalGrid){ binary = ((CalibrationDetectorCircleHexagonalGrid) a).getDetector().getBinary();
public CalibrationDetectorSquareGrid(ConfigSquareGrid config) { if( config.refineWithCorners) { config.square.refine = config.configRefineCorners; } else { config.square.refine = config.configRefineLines; } double spaceToSquareRatio = config.spaceWidth/config.squareWidth; InputToBinary<GrayF32> inputToBinary = FactoryThresholdBinary.threshold(config.thresholding,GrayF32.class); BinaryPolygonDetector<GrayF32> detectorSquare = FactoryShapeDetector.polygon(config.square,GrayF32.class); detect = new DetectSquareGridFiducial<>(config.numRows,config.numCols, spaceToSquareRatio,inputToBinary,detectorSquare); layoutPoints = createLayout(config.numRows, config.numCols, config.squareWidth,config.spaceWidth); }