Given an image - such as a simple JPEG of a person or a landscape - is it possible to produce an algorithm that extracts certain visual features from the input image to produce a unique fingerprints of the image.

Think of this as a hash function (such as MD5) that receives an image as input and produces a digest. However in our scenario the digest/hashing result is not from the byte content but rather form the visual representation of the image.

An important feature of the visual fingerprint generation is its consistency for different variation of the image. For example the input image could be resized or saved in a different format (e.g., BMP) or with a different compression rate (in the case of JPEG), or with a reduce set of colours (in the case of GIF).

Is such an algorithm possible to develop? If so what variations can it cover? and how accurate such algorithm can become?

| improve this question | | | | |
  • $\begingroup$ Are you looking for a hash function that gives an identical hash for images similar enough to be different sized versions of the same original, or one that gives more similar results for more similar inputs? $\endgroup$ – trichoplax Nov 2 '16 at 1:46
  • $\begingroup$ I don't think this is answerable without clarifying the purpose of the hash function, so I've put it on hold until it is clarified and then it can be edited and reopened. $\endgroup$ – trichoplax Nov 2 '16 at 1:57
  • $\begingroup$ Sounds like OP wants a robust way to compare if two images are the same even if they have gone through resize or lossy compression, by generating a hash key from it. Sounds a bit something OpenCV might help with $\endgroup$ – JarkkoL Nov 2 '16 at 2:02
  • $\begingroup$ Similar question with "Feature Matching" answer: stackoverflow.com/questions/11541154/… $\endgroup$ – JarkkoL Nov 2 '16 at 2:17
  • $\begingroup$ @trichoplax yes I am looking for a hash function that produces an 'identical' digest regardless (or at least to a good degree) of the size, orientation and skewness. $\endgroup$ – picolo Nov 2 '16 at 18:27

Browse other questions tagged or ask your own question.