How to detect darts on a dart board using Computer Vision in OpenCV?

I'm a newbie to the world of Computer Vision. Here's what I need to do. Given an image, pick out and draw a circle around all the locations in the image which contain an object A. In other words, say there are 3 darts on a shooting board and I want to return the locations of them. How would I do this using OpenCV? What's the name of the technique(s) I would have to use. I want to know what parts of the library to get familiar with in order to implement this feature.


  • So this tutorial seems to cover some of the basic topics. You should look for pattern recognition, edge detection... I do not know if you will be working with static images, or video. A mix of techniques can be combined, and the robustness of the method depends on how much time you can spend processing the given image/frame.

    To draw stuff on the image its pretty simple, for example a circle is a simple function call with a few parameters.

    I am no expert in this matters, but I'd you can start with a static image and draw some circles, then look for a way to detect your pattern (for example, to extract image properties you can look into SURF)

    Also if you have access to Matlab, it can perform some image processing.