/** * Configures the detector, configures target description for calibration and starts the detector thread. */ @Override public void createNewProcessor() { DetectorFiducialCalibration detector; if( cc.targetType == CalibrationPatterns.CHESSBOARD ) { detector = FactoryFiducialCalibration.chessboard(cc.chessboard); } else if( cc.targetType == CalibrationPatterns.SQUARE_GRID ) { detector = FactoryFiducialCalibration.squareGrid(cc.squareGrid); } else if( cc.targetType == CalibrationPatterns.CIRCLE_HEXAGONAL ){ detector = FactoryFiducialCalibration.circleHexagonalGrid(cc.hexagonal); } else if( cc.targetType == CalibrationPatterns.CIRCLE_GRID ){ detector = FactoryFiducialCalibration.circleRegularGrid(cc.circleGrid); } else { throw new RuntimeException("Unknown targetType "+cc.targetType); } CalibrationComputeActivity.targetLayout = detector.getLayout(); setProcessing(new DetectTarget(detector)); }
@Override public void declareDetector() { config.thresholding = controlPanel.threshold.createConfig(); config.numRows = controlPanel.getGridRows(); config.numCols = controlPanel.getGridColumns(); config.circleDiameter = ((DetectCalibrationCirclePanel)controlPanel).getCircleDiameter(); config.centerDistance = ((DetectCalibrationCirclePanel)controlPanel).getCircleSpacing(); detector = FactoryFiducialCalibration.circleHexagonalGrid(config); reprocessImageOnly(); }