Image processing pHash对某些图像产生奇怪的结果

Image processing pHash对某些图像产生奇怪的结果,image-processing,phash,Image Processing,Phash,我很难理解一些结果 根据pHash,两幅非常相似的图像只有75%的共同点: & 这两张没有任何共同点的图像有78%的相似性: & 有什么我可能做错的吗?我使用的是ruby库(Similie、pHash、Phashion),但它们只是映射pHash函数。在其他一些例子中,结果令人满意。我认为结果可以解释为: 对于第一对图像,对图像的主要“攻击”是重帧,这显著改变了创建dct哈希的频率数据。这是dct哈希方法的一个已知弱点,并记录在pHash网站上 第二对图像的“相似性”可能是由于文件大小较小,并且

我很难理解一些结果

根据pHash,两幅非常相似的图像只有75%的共同点:

&

这两张没有任何共同点的图像有78%的相似性:

&


有什么我可能做错的吗?我使用的是ruby库(Similie、pHash、Phashion),但它们只是映射pHash函数。在其他一些例子中,结果令人满意。

我认为结果可以解释为:

对于第一对图像,对图像的主要“攻击”是重帧,这显著改变了创建dct哈希的频率数据。这是dct哈希方法的一个已知弱点,并记录在pHash网站上

第二对图像的“相似性”可能是由于文件大小较小,并且其中一幅图像中单一颜色的大块造成的。根据我的主观经验,这些类型的文件经常会导致出现奇怪的“相似性”。(品牌名称的形象对我来说是个问题)。不幸的是,我真的无法解释这种意想不到的行为

使用多种散列方法(如mexican hat或radial)和更大的源文件(如果可用),可以帮助降低“错误匹配”率

更新:

此后,我在ImageMagick中试用了新发布的phash功能。它允许您使用命令行调用
compare-metric phash image1 image2 diffimage
来区分两个图像

使用该工具,第一组(相似)图像的相似性分数为19.78,而明显不同的图像的分数为258.58。建议作为“匹配阈值”的值为21。与dct散列不同,此pHash方法包含颜色信息

有关此新功能的信息:

不确定“重新构建”是什么意思。。。左侧较小的图像不是右侧图像的直接缩略图吗?