I'm looking for an image hashing algorithm (at the moment, I'm thinking perceptual hash of some kind) that is able to preserve details a bit more than usual hashing algorithms. The images I need to distinguish between are pretty similar to begin with and the details need to be taken into account, so I don't quite want to scale it down a lot. I need to be able to tell if a given image matches one already in a database, but I want it to at least be resistant to cropping and rotation (cropped/rotated images should give the same or almost the same result). Added bonus would be if it's also resistant to changing by a few pixels (with some threshold, of course.) . My fear with the usual perceptual hashes is that they scale the image down so much, and the images I have would all look too similar. Thanks!