@Override protected FiducialDetector<GrayU8> createDetector() { if( cc.targetType == CalibrationPatterns.CHESSBOARD ) { return FactoryFiducial.calibChessboard(cc.chessboard, GrayU8.class); } else if( cc.targetType == CalibrationPatterns.SQUARE_GRID ) { return FactoryFiducial.calibSquareGrid(cc.squareGrid, GrayU8.class); } else if( cc.targetType == CalibrationPatterns.CIRCLE_HEXAGONAL ) { return FactoryFiducial.calibCircleHexagonalGrid(cc.hexagonal, GrayU8.class); } else if( cc.targetType == CalibrationPatterns.CIRCLE_GRID ) { return FactoryFiducial.calibCircleRegularGrid(cc.circleGrid, GrayU8.class); } else { throw new RuntimeException("Unknown"); } } }
public QrCodeProcessing() { super(GrayU8.class); ConfigQrCode config; switch( detectorType ) { case FAST:{ config = ConfigQrCode.fast(); }break; default: { config = new ConfigQrCode(); } } detector = FactoryFiducial.qrcode(config,GrayU8.class); colorDetected.setARGB(0xA0,0,0xFF,0); colorDetected.setStyle(Paint.Style.FILL); colorFailed.setARGB(0xA0,0xFF,0x11,0x11); colorFailed.setStyle(Paint.Style.FILL); }
@Override public void variableChanged(YoVariable<?> v) { synchronized (expectedFiducialSizeChangedConch) { detector = FactoryFiducial.squareBinary(new ConfigFiducialBinary(expectedFiducialSize.getDoubleValue()), ConfigThreshold.local(ThresholdType.LOCAL_SQUARE, 10), GrayF32.class); } } });
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 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); }
ConfigFiducialImage config = new ConfigFiducialImage(); configThreshold = ConfigThreshold.fixed(binaryThreshold); detector = FactoryFiducial.squareImage(config, configThreshold, GrayU8.class);
/** * Configure it to detect chessboard style targets */ public CalibrationFiducialDetector(ConfigChessboard config, Class<T> imageType) { DetectorFiducialCalibration detector = FactoryFiducialCalibration.chessboard(config); double sideWidth = config.numCols*config.squareWidth; double sideHeight = config.numRows*config.squareWidth; width = (sideWidth+sideHeight)/2.0; init(detector, width, imageType); }
/** * Configure it to detect square-grid style targets */ public CalibrationFiducialDetector(ConfigSquareGrid config, Class<T> imageType) { DetectorFiducialCalibration detector = FactoryFiducialCalibration.squareGrid(config); int squareCols = config.numCols; int squareRows = config.numRows; double sideWidth = squareCols* config.squareWidth + (squareCols-1)*config.spaceWidth; double sideHeight = squareRows*config.squareWidth + (squareRows-1)*config.spaceWidth; double width = (sideWidth+sideHeight)/2.0; init(detector, width, imageType); }
@Override protected void createDetector(boolean initializing) { if( !initializing) BoofSwingUtil.checkGuiThread(); DetectQrCodeControlPanel controls = (DetectQrCodeControlPanel)DetectQrCodeApp.this.controls; synchronized (this) { ConfigQrCode config = controls.getConfigQr(); config.threshold = controls.getThreshold().createConfig(); detector = FactoryFiducial.qrcode(config,imageClass); detector.setProfilerState(true); } }
@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.circleRegularGrid(config); reprocessImageOnly(); }
@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(); }
/** * Configure it to detect square-grid style targets */ public CalibrationFiducialDetector(ConfigSquareGridBinary config, Class<T> imageType) { DetectorFiducialCalibration detector = FactoryFiducialCalibration.binaryGrid(config); int squareCols = config.numCols; int squareRows = config.numRows; double sideWidth = squareCols*config.squareWidth + (squareCols-1)*config.spaceWidth; double sideHeight = squareRows*config.squareWidth + (squareRows-1)*config.spaceWidth; double width = (sideWidth+sideHeight)/2.0; init(detector, width, imageType); }
public CalibrationFiducialDetector(ConfigCircleAsymmetricGrid config, Class<T> imageType) { DetectorFiducialCalibration detector = FactoryFiducialCalibration.circleAsymmGrid(config); int squareCols = config.numCols; int squareRows = config.numRows; double sideWidth = squareCols*config.centerDistance/2.0; double sideHeight = squareRows*config.centerDistance/2.0; double width = (sideWidth+sideHeight)/2.0; init(detector, width, imageType); }
@Override public void notifyOfVariableChange(YoVariable<?> v) { synchronized (expectedFiducialSizeChangedConch) { detector = FactoryFiducial.squareBinary(new ConfigFiducialBinary(expectedFiducialSize.getDoubleValue()), ConfigThreshold.local(ThresholdType.LOCAL_SQUARE, 10), GrayF32.class); } } });
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 public void declareDetector() { config.thresholding = ((DetectCalibrationPolygonPanel)controlPanel).polygonPanel.thresholdPanel.createConfig(); config.square = ((DetectCalibrationPolygonPanel)controlPanel).polygonPanel.getConfigPolygon(); config.numRows = controlPanel.getGridRows(); config.numCols = controlPanel.getGridColumns(); alg = FactoryFiducialCalibration.chessboard(config).getAlgorithm(); reprocessImageOnly(); }
@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(); }
@Override protected FiducialDetector<GrayU8> createDetector() { FiducialDetector<GrayU8> detector; ConfigFiducialBinary config = new ConfigFiducialBinary(0.1); synchronized ( lock ) { ConfigThreshold configThreshold; if (robust) { configThreshold = ConfigThreshold.local(ThresholdType.LOCAL_MEAN, 13); } else { configThreshold = ConfigThreshold.fixed(binaryThreshold); } detector = FactoryFiducial.squareBinary(config, configThreshold, GrayU8.class); } return detector; }
public static void main(String[] arg) throws URISyntaxException { //install ros libuvc_camera driver first to try on usbwebcams String cameraPrefix = "/multisense/left"; String imageTopic = cameraPrefix + "/image_color"; String cameraInfoTopic = cameraPrefix + "/camera_info"; final boolean RUN_JAVA_ROSCORE = false; URI rosMasterURI; if (RUN_JAVA_ROSCORE) { RosCore rosCore = RosCore.newPublic(); rosMasterURI = rosCore.getUri(); } else { // rosMasterURI = new URI("http://cpu0:11311"); rosMasterURI = new URI("http://localhost:11311"); } RosMainNode rosMainNode = new RosMainNode(rosMasterURI, "RosMainNode"); // FiducialDetector<GrayF32> detector = FactoryFiducial.calibChessboard(new ConfigChessboard(5, 6, 0.09), GrayF32.class); FiducialDetector<GrayF32> detector = FactoryFiducial.squareBinary(new ConfigFiducialBinary(0.1), ConfigThreshold.local(ThresholdType.LOCAL_SQUARE, 10), GrayF32.class); new RosFiducialDetector(rosMainNode, imageTopic, cameraInfoTopic, detector); rosMainNode.execute(); } }
public static void main(String[] arg) throws URISyntaxException { //install ros libuvc_camera driver first to try on usbwebcams String cameraPrefix = "/multisense/left"; String imageTopic = cameraPrefix + "/image_color"; String cameraInfoTopic = cameraPrefix + "/camera_info"; final boolean RUN_JAVA_ROSCORE = false; URI rosMasterURI; if (RUN_JAVA_ROSCORE) { RosCore rosCore = RosCore.newPublic(); rosMasterURI = rosCore.getUri(); } else { // rosMasterURI = new URI("http://cpu0:11311"); rosMasterURI = new URI("http://localhost:11311"); } RosMainNode rosMainNode = new RosMainNode(rosMasterURI, "RosMainNode"); // FiducialDetector<GrayF32> detector = FactoryFiducial.calibChessboard(new ConfigChessboard(5, 6, 0.09), GrayF32.class); FiducialDetector<GrayF32> detector = FactoryFiducial.squareBinary(new ConfigFiducialBinary(0.1), ConfigThreshold.local(ThresholdType.LOCAL_SQUARE, 10), GrayF32.class); new RosFiducialDetector(rosMainNode, imageTopic, cameraInfoTopic, detector); rosMainNode.execute(); } }