I have a large image of a microscopic die of an integrated circuit. The pixel dimensions are something like 15000 x 10000.
The image contains a number of repeated structured subimages. Some large blocks might even repeat 3 or 4 times because there was a need for duplicated functionality. (See good candidates on the left of the example image)
I'd like to identify the largest(in pixel dimensions) repeating subimage block, and then highlight the locations of those subimages. I would repeat this process looking for the next largest repeating subimage block, highlight those, and so on.
To be clear, I don't have the subimages in advance. The problem isn't only to find the location of certain subimages within an image. That's Step two. :)
While the image is in fact a color image, it could be easily turned into a gray-scale image without loss of content.
There is obviously some "noise" to an image like this, and there'd have to be some adjustable "fudge factor" on what to consider a match.
I'm not entirely sure where to start on this, or if this is even the correct SE. Would FFT be a potential solution? Using MatLab? Specific one-off image analysis tools?
I could write some simple image analysis software that breaks an image up into smaller blocks, and then searches the image for those blocks. But this sounds incredibly slow to me, and there's got to be a more efficient way to do this.