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. Image of Software Logic Overview
This is an image of general algorithm the program uses from startup to exiting.

Image of primitive program demonstrating color detect
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.

Image of primitive progrm showing SIFT Detection
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