PHP:图像与哈希的精确比较

问题描述 投票:0回答:2

最初的任务是处理图像,对其进行哈希处理,使一些重型图像工作并将此哈希和工作结果存储在数据库中, 在下一个使用相同图像的请求期间,我想将图像哈希值与数据库中的哈希值进行比较,并加载数据库缓存的结果以减少繁重的工作量。

所以问题是,要哈希什么?用什么来哈希? 我看到 phash 的良好 php 实现,但似乎它对于相似性检查很有用,但我们需要精确匹配。 phash 也适合精确数学吗?

谢谢!

php database image image-processing phash
2个回答
1
投票

PHP为此提供了一个内置函数,这可能是最简单的解决方案:

$hash = hash_file("sha1", '/path/to/image');

您可以使用此检查来进行精确匹配。发生冲突的可能性很小,但您可以通过在比较中使用文件路径或数据库 ID 来帮助缓解这种情况。

这个类似问题中的答案提供了更多选项。


0
投票

如果您使用 PHP 8.1 或更高版本,请考虑使用 https://github.com/sapientpro/image-comparator 库。该软件包建立在感知哈希之上,并提供有效比较多个图像的功能。

$comparator = new SapientPro\ImageComparator\ImageComparator();

$similarity = $comparator->compare('your-images/your-image1.jpg', 'your-images/your-image12.jpg');
    
echo $similarity; // Outputs: 89.3
© www.soinside.com 2019 - 2024. All rights reserved.