public void configure(int numRows, int numCols ) { config = new ConfigChessboard(numRows, numCols, 1); }
/** * 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); }
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 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 static void main( String args[] ) { DetectorFiducialCalibration detector = // FactoryFiducialCalibration.squareGrid(new ConfigSquareGrid(8, 8, 0.5, 7.0 / 18.0)); // FactoryFiducialCalibration.squareGrid(new ConfigSquareGrid(4,3,30,30)); FactoryFiducialCalibration.chessboard(new ConfigChessboard(7, 5, 30)); // FactoryFiducialCalibration.circleHexagonalGrid(new ConfigCircleHexagonalGrid(5, 8, 1, 6)); List<String> images; images = UtilIO.listAll(UtilIO.pathExample("calibration/fisheye/chessboard")); // images = UtilIO.listAll(UtilIO.pathExample("calibration/fisheye/square_grid")); SwingUtilities.invokeLater(()-> { CalibrateFisheyePlanarGuiApp app = new CalibrateFisheyePlanarGuiApp(); app.configure(detector, images).configureUniversalOmni(true, 2, false); JFrame frame = new JFrame("Fisheye Calibration with Planar Targets"); frame.add(app, BorderLayout.CENTER); frame.pack(); frame.setVisible(true); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); new Thread(() -> app.process("intrinsic.yaml")).start(); }); } }
public static void main( String args[] ) { DetectorFiducialCalibration detector = // FactoryFiducialCalibration.squareGrid(new ConfigSquareGrid(8, 8, 0.5, 7.0 / 18.0)); // FactoryFiducialCalibration.squareGrid(new ConfigSquareGrid(4,3,30,30)); FactoryFiducialCalibration.chessboard(new ConfigChessboard(7, 5, 30)); // FactoryFiducialCalibration.circleHexagonalGrid(new ConfigCircleHexagonalGrid(5, 8, 1, 6)); List<String> images; // images = UtilIO.listByPrefix(UtilIO.pathExample("calibration/mono/Sony_DSC-HX5V_Square"),"frame"); images = UtilIO.listByPrefix(UtilIO.pathExample("calibration/mono/Sony_DSC-HX5V_Chess"),"frame", null); // images = UtilIO.listByPrefix(UtilIO.pathExample("calibration/mono/Sony_DSC-HX5V_CircleHexagonal"),"image"); // images = UtilIO.listByPrefix(UtilIO.pathExample("calibration/mono/PULNiX_CCD_6mm_Zhang"),"CalibIm"); // images = UtilIO.listByPrefix(UtilIO.pathExample("calibration//stereo/Bumblebee2_Square"),"left"); SwingUtilities.invokeLater(()-> { CalibratePinholePlanarGuiApp app = new CalibratePinholePlanarGuiApp(); app.configure(detector, images, 2, false); JFrame frame = new JFrame("Pinhole Calribation with Planar Targets"); frame.add(app, BorderLayout.CENTER); frame.pack(); frame.setVisible(true); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); new Thread(() -> app.process("intrinsic.yaml")).start(); }); } }
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(); }
public static void main( String args[] ) { DetectorFiducialCalibration detector = FactoryFiducialCalibration.chessboard(new ConfigChessboard(7, 5, 30));
detector = FactoryFiducial.qrcode3D(null, imageClass); } else if( name.compareTo(CALIB_CHESS) == 0 ) { detector = FactoryFiducial.calibChessboard(new ConfigChessboard(7, 5, 0.03), imageClass); } else if( name.compareTo(CALIB_SQUARE_GRID) == 0 ) { detector = FactoryFiducial.calibSquareGrid(new ConfigSquareGrid(4, 3, 0.03, 0.03), imageClass);
protected void parseTarget( String where ) throws FileNotFoundException { Reader input = media.openFile(where); SimpleStringNumberReader reader = new SimpleStringNumberReader('#'); if( !reader.read(input) ) throw new RuntimeException("Parsing configuration failed"); if( reader.remainingTokens() < 7 ) throw new RuntimeException("Not enough tokens in config file"); String type = reader.nextString(); numRadial = (int)reader.nextDouble(); includeTangential = Boolean.parseBoolean(reader.nextString()); assumeZeroSkew = Boolean.parseBoolean(reader.nextString()); int numCols = (int)reader.nextDouble(); int numRows = (int)reader.nextDouble(); double width = reader.nextDouble(); if( type.compareToIgnoreCase("square") == 0 ) { double space = reader.nextDouble(); detector = FactoryFiducialCalibration.squareGrid(new ConfigSquareGrid(numRows, numCols, width, space)); } else if( type.compareToIgnoreCase("chess") == 0 ) { detector = FactoryFiducialCalibration.chessboard(new ConfigChessboard(numRows, numCols, width)); } else { throw new RuntimeException("Unknown type: "+type); } try { input.close(); } catch (IOException e) {} }
CalibrationDetectorChessboard target = FactoryCalibrationTarget.detectorChessboard(new ConfigChessboard(5, 6, 10)); if( !target.process(gray) ) throw new RuntimeException("Failed to detect target");
ConfigChessboard config = new ConfigChessboard(5, 7, 0.03); CalibrationDetectorChessboard detector = FactoryCalibrationTarget.detectorChessboard(config);
ConfigChessboard config = new ConfigChessboard(5, 7, 0.03); CalibrationDetectorChessboard detector = FactoryCalibrationTarget.detectorChessboard(config);