OpenCV is a well known computer vision library used as base framework used by major companies like Google, IBM, Sony and numerous others. It enables quick vision based tool development and results can be seen in a minutes after starting to code. This time I will show how to find round blobs (for example fiducial marks or holes on PCB). There are many ways to accomplish this task, but many of them don’t produce stable results. After many hours of research I stumbled on SimpleBlobDetector.
For this experiment I will be using standard Python 2.7 installation and OpenCV 3.1 library. OpenCV can be installed numerous ways, for Windows feel free to install from official OpenCV page (requires more steps to get started) or download from Unofficial Windows Binaries for Python Extension Packages and install with command like this:
pip install opencv_python-3.1.0-cp27-cp27m-win32.whl
Script is provided below and hosted on Github. To start experimenting supply video file and adjust parameters if needed. Code is pretty simple and requires no more explanation (hopefully).