I have a set of images which all have 100 points arranged in the same pattern on each image. The points can be either circles or squares, and some images have a vertical and horizontal axis through the middle, or text around the outside.
I am trying to find a way to find this pattern on each image, then use the location of these to align the images so the points are always in the same location for some processing.
I've tried OpenCV's feature matching with a template (based off the test image). This seemed to be working at first when I was testing it on one image. I realised later it was picking up the slight variances in the shape of the points and matching these, not the location of the points. It doesn't work if I use any other images against the template.
So now I need some other method to detect the pattern in the images. Any ideas how I can do this? I'm thinking maybe some kind of contour detection, then processing to see if they match the pattern but not sure how do do this. Any help would be appreciated.
Edit to clarify: When the matching works I can use warpAffine to warp the image to match the template. It's matching up the points that I am struggling to do.
Based off this image. Which the feature mapping works with
And other similar images look like this. Or various other formats, sometimes without the axis, or different text around them.
These are the matches that the feature detector finds when using an image based on the template
These are the matches if another image is used. None of the points match to the correct locations