Detecting somewhat different images – Are there any Java implementations for hash aware and differential hashing?
I’m working on a solution to detect similar but slightly different media images.
I’ve read a lot of articles suggesting techniques for processing images
For example – Image comparison – fast algorithm
Based on file hashes (md5, sha1, etc.) – tried, worked well for exactly similar content.
Perceived hashing (phash) for rescaling images – Look for a Java implementation that is as accurate as phash.org provides. Provides a java solution @ http://pastebin.com/Pj9d8jt5 reported false positives, but I haven’t tried it yet.
Modify the feature-based (SIFT) of an image – Look for some sample code to start kickstart.
If there are any other suggestions, please share them.
Solution
Answer point 2 of the question. I haven’t checked any of these pHash implementations, but there may be an accurate one of them :
Java pHash https://github.com/krishnact/jphash
Another java pHash https://github.com/thomasheckmann/image-indexer
Java (Android) pHash https://github.com/gavinliu/SimilarPhoto
Groovy pHash https://github.com/mdbishop/ImagePHash
Scala pHash https://gist.github.com/Howon/7db1239355841a71ffa9
Another scala pHash https://github.com/warricksothr/ImageTools/blob/master/engine/src/main/scala/com/sothr/imagetools/engine/hash/PHash.scala