nbsbbs/phash

计算图像的可感知哈希值

维护者

详细信息

github.com/Nbsbbs/phash

源代码

1.0.2 2023-03-09 18:22 UTC

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;

注意

  • 匹配相似性的位计数算法可能比汉明距离快得多。
  • 计算基于十六进制哈希的汉明距离可能比二进制版本快但不够准确。