Detecting fiducial markers from a PCB with pattern matching

Image converted to grayscale. Image by the author.
Manual measurement of the inner disk’s diameter. Image by the author.
Creating a synthetic fiducial marker image. Code by the author.
A synthetic fiducial marker. Image by the author.
Pattern matching. Code by the author.
Zero-padded and rescaled matched image. Image by the author.
Finding the optimal threshold by decreasing it until the expected number of objects are found. Code by the author.
Location of one of the three found fiducial markers. Image by the author.
Annotation of the image, showing the three found fiducial markers and the PCB edges. Image by the author.