To preface this post I'm going to say that what I'm looking to do is purely in the theorhetical stages at this moment so I don't have any code to share yet.
At it's basest essence what I'm attempting to do is compare Image A with Image B to determine if they are the same image.
The catch comes in the fact that Image B may be at a different scale or orientation from Image A (could be higher resolution or landscape vs portrait).
I've already determined that I am going to be breaking down the initial image(s) into base patterns (skeletons -> line ends) and comparing the patterns from there (the skeletons/line ends are going to be derived from pixel groupings and variants to try to give 'base' shape characteristics from the original). What I'm stuck on at that point is what the best method would be to determine 'similarity' between the 2 images.
In a perfect world the 2 images would be similar enough that straight comparison would be possible (for example in the image I'm attaching, square 1 would compare directly to another same sized same orientation square). In the not-so-perfect world there would be scale or orientation differences (square 1 to square 2,3 or 4). In either of these worlds a straight comparison between points with scale/orientation adjustments as needed would yield a true/false on the images matching.
However, we don't live in a perfect world and there's other factors to take into consideration such as difference in cropping and the like. What I'm trying to figure out is, once I've developed a base 'pattern' from an image (kind of like grabbing key elements from a fingerprint in CSI as an example) how do I match that pattern to another image that may not be cropped/rotated/sized the same as the original?
Again, I'm just talking 'in theory' here but as I said, the part I get stuck on is where the 2 images don't share the same dimensions/positioning and so a straight array comparison wouldn't fit the need.
Any thoughts? Sorry for the primitiveness of the attached images, threw it together in photoshop to try to illustrate better what I'm talking about.
Edit: Ruh Roh... I just realized I entered AD's domain *runs and hides* just kidding AD :twisted: