#algorithm #detection #implemented #image #vision #width #height

checkerboard

Checkerboard detection algorithms implemented in rust

1 unstable release

0.1.0 Nov 23, 2019

#19 in #height

MIT license

100KB
1K SLoC

checkerboard-rs

Checkerboard detection algorithms implemented in rust.

Right now this library only exposes a re-implementation of the algorithm described in [1, 2, 3]

  1. Scaramuzza, D., Martinelli, A. and Siegwart, R.. "A Flexible Technique for Accurate Omnidirectional Camera Calibration and Structure from Motion", Proceedings of IEEE International Conference of Vision Systems (ICVS'06), New York, January 5-7, 2006.
  2. Scaramuzza, D., Martinelli, A. and Siegwart, R.. "A Toolbox for Easy Calibrating Omnidirectional Cameras", Proceedings to IEEE International Conference on Intelligent Robots and Systems (IROS 2006), Beijing China, October 7-15, 2006.
  3. Rufli, M., Scaramuzza, D., and Siegwart, R., Automatic Detection of Checkerboards on Blurred and Distorted Images,Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2008), Nice, France, September 2008.

The API is still unstable and will most likely evolve with more use (by me or through external feedback).

Getting Started

This library currently requires OpenCV 3.2 and uses opencv-rust for bindings. Please see the their repository on how to set up OpenCV to get opencv-rust to build.

Example

use checkerboard_rs::CheckerboardSpecification;
use checkerboard_rs::rufli::detect_checkerboard;

let spec = CheckerboardSpecification {
    width: 22,
    height: 12,
};
let image = image::open(&"assets/reference_easy/checker2212.png")
    .unwrap()
    .to_rgb();

let quads =
    detect_checkerboard(&image, &spec).expect("Did not receive a valid checkerboard.");

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Dependencies

~22MB
~224K SLoC