-2

I am working on a content-based image retrieval system on a distributed environment, I need an algorithm that takes as input an image and gives me a code for the image, this code should be such that it can be used to match visually similar images.

4 Answers4

1

you can create an Image Hash as described here

TheWhiteRabbit
  • 15,480
  • 4
  • 33
  • 57
  • I'm pretty sure hashes can't be used to match with similar things. – Zach Latta Feb 07 '13 at 10:02
  • 1
    @ZachLatta, you're thinking of cryptographic hashes, where small changes in the input produce massive changes in the hash - called an avalanche effect. With image hashing, you often want small changes in the image to produce small (or zero) changes in the hash. Perceptual hashing techniques try to do this. – Desty Jul 23 '13 at 11:53
0

It depends on kind of images, one workable alternative would be invariant moments ( either hu, or zernike )

We use this method in javaocr library, feel free to grab code from there.

Main advantage of invariant moments with cluster mathing is that it provides distance from cluster centers ( like: this is 90% cucumber but 20% apple )

Martin
  • 2,135
  • 8
  • 39
  • 42
Konstantin Pribluda
  • 12,329
  • 1
  • 30
  • 35
0

I guess, you are talking about face recognition. If itś then these are few algorithms which are used on image processing.

  1. Eigenface
  2. Elastic Bunch Graph Matching
  3. Principal Component Analysis
subodh
  • 6,136
  • 12
  • 51
  • 73
0

You can use locally aware bloom hash, this is an implementation of phash in java by Elliot Shepherd: http://pastebin.com/Pj9d8jt5

jspboix
  • 766
  • 1
  • 4
  • 8