/** * 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); } }
/** * Configures the detector based on the pass in configuration class * @param config Configuration for detector and target description */ public CalibrationDetectorCircleAsymmGrid(ConfigCircleAsymmetricGrid config ) { InputToBinary<GrayF32> inputToBinary = FactoryThresholdBinary.threshold(config.thresholding,GrayF32.class); BinaryEllipseDetector<GrayF32> ellipseDetector = FactoryShapeDetector.ellipse(config.ellipse,GrayF32.class); spaceToRadius = (config.centerDistance/config.circleRadius); EllipsesIntoClusters e2c = new EllipsesIntoClusters(spaceToRadius*1.25,config.ellipseSizeSimilarity); detector = new DetectAsymmetricCircleGrid<>(config.numRows,config.numCols,inputToBinary, ellipseDetector,e2c); layout = createLayout(detector.getRows(),detector.getColumns(), config.centerDistance); }