Software
OpenCV
OpenCV was used for image processing. There were many necessary functions;however, the main ones were SIFT Feature Detector, and InRange. Feature Detector was used to reference the skewed dartboard
to its aligned mask, and InRange was used to find the darts via color detection.
Qt
Qt was used to provide a simple GUI for the user to run the program. The group wanted a simple and intuitive interface and decided not to rely on commandline outputs for scoring.
This is an image of general algorithm the program uses from startup to exiting.
This image shows the basis behind color detecting. Each color has a unique HSV number or Hue-Saturation-Value, which allows its pixels to be detected by the program.
This image shows demonstrates the logic behind the SIFT Detection feature used to find the darts position on the actual board despite a non-orthogonal view.
After its true position is found, simple angular geometry and radius detection is used to find the dart's score.
Links
Project Overview
Software
Hardware
Problems Encountered
Future Work