Skip to content
/ phash Public
forked from xwiz/phash

Perpetual hash implementation in PHP

License

Notifications You must be signed in to change notification settings

kiwialec/phash

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Phash

Perceptual hash implementation for PHP

This is my PHP Implementation of the AverageHash algorithm to create Perceptual Hashes

A perceptual hash is different from a typical hash as it allows you to compute a signature based on the visual features of an image rather than the actual data they contain as with a cryptographic hash. This allows you to use the Perceptual Hash for simple image matching which could prove useful in finding duplicate pictures or picture tagging.

To get a better understanding of this project see: http://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html


Sample Usage

You can use pHash methods as a class in your project and extend as you wish.

A basic implementation is as follows:

#sample implementation
$phasher = new Phash;
$phash2 = $phasher->getHash('phash2.jpg', false);
//this will echo hash in hex, then binary
echo $phasher->hashAsString($phash2, false).PHP_EOL;
echo $phasher->hashAsString($phash2).PHP_EOL;

$phash3 = $phasher->getHash('phash3.jpg', false);
//this will echo hash in hex, then binary
echo $phasher->hashAsString($phash3, false).PHP_EOL;
echo $phasher->hashAsString($phash3).PHP_EOL;

//using BIT COUNT METHOD FOR SIMILARITY
echo $phasher->getSimilarity($phash2, $phash3, 'BITS');
echo PHP_EOL;

//using HAMMING METHOD (DEFAULT) FOR SIMILARITY
echo $phasher->getSimilarity($phash2, $phash3);
echo PHP_EOL;

Notes

  • The bitcount algorithm for matching similarity may be siginificantly faster than hamming distance.
  • Calculating hamming distance between two hex based hashes may be faster but less accurate than the binary version

About

Perpetual hash implementation in PHP

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 100.0%