nbsbbs / phash
1.0.2
2023-03-09 18:22 UTC
Requires
- php: >=7.4
- ext-gd: *
This package is auto-updated.
Last update: 2024-09-09 21:29:05 UTC
README
PHP的可感知哈希实现
这是我基于AverageHash算法创建可感知哈希的PHP实现
可感知哈希与典型哈希不同,因为它允许您根据图像的视觉特征而不是实际数据内容(如加密哈希)来计算签名。这使得您可以使用可感知哈希进行简单的图像匹配,这可能在查找重复图片或图片标记时非常有用。
要更好地了解此项目,请参阅: http://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html
示例用法
您可以将pHash方法作为类在您的项目中使用,并根据需要扩展。
基本实现如下
#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;
注意
- 匹配相似性的位计数算法可能比汉明距离快得多。
- 计算基于十六进制哈希的汉明距离可能比二进制版本快但不够准确。