/isometric_pattern_matcher

A new isometric calibration pattern - which should/might lead to higher accuracy calibrations compared to existing solutions (checkerboards, patterns of circles).

Primary LanguageC++MIT LicenseMIT

IsometricPatternMatcher

IsometricPatternMatcher is a C++ library. It proposes a hex-grid, intensity-modulated calibration pattern for camera intrinsics and extrinsics calibration, and have corresponding code for generating and matching the proposed pattern. Its usage is similar to that of calibu.

Examples

  1. For generating an isometric pattern (see examples/main_IsometricPatternGeneration.cpp for complete example):
    IsometricGridDot grid(
      args.verticalSpacing / 1000, // vertical spacing, should be approximate sqrt(3)/2 * horizontal spacing
      args.horizontalSpacing / 1000,    // horizontal spacing
      args.dotRadMm / 1000,     // radius of dot, should be as small as possible
      args.numberLayer,     // 1 layer has 1+6=7 dots, 2 layers have 1+6+12=19 dots, ...
      args.gridRowsCols,    // you can pick only the center square region of the hex pattern
      args.seed);   // random seed for binary encoding.
  1. For pattern matching (see examples/main_IsometricPatternDetectionSimple.cpp for complete example):
  PatternMatcherIsometric::IsometricOpts isometricOpts;
  isometricOpts.focalLength = args.focalLength;
  isometricOpts.ifDistort = args.ifDistorted;

  std::unique_ptr<PatternMatcherIsometric> matcher =
      std::make_unique<PatternMatcherIsometric>(pattern, isometricOpts);

  PatternMatcherIsometric::Result res = matcher->Match(image);

Requirements

Building IsometricPatternMatcher

TODO

Installing IsometricPatternMatcher

TODO

Join the IsometricPatternMatcher community

Send emails to ilyesse${zero-eight} AT gmail for questions. See the CONTRIBUTING file for how to help out.

License

IsometricPatternMatcher is MIT licensed, as found in the LICENSE file.