9

我正在截取应用程序的屏幕截图,并尝试检测之前是否看过确切的图像。我正在寻找不同的细微变化 - 例如,如果图像中有文本,并且拼写发生变化,这算作不匹配。

我已经成功地使用屏幕截图图像内容的 MD5 哈希在已知图像的数据库中查找,并检测它是否以前见过。

现在,我已将它移植到另一台机器上,尽管我尝试完全匹配配置,但我得到的图像与旧机器略有不同。当我说不同时,变化是微小的——如果我炸毁新旧图像并在它们之间轻弹,我看不到任何区别!尽管如此,ImageMagick 的compare命令可以看到一些不同的像素。

所以我的 MD5 哈希不再匹配。我需要一个图像散列,而不是简单的 MD5散列。

在进行研究时,我发现大多数图像哈希都试图相当慷慨——它们接受调整大小、转换和加水印的图像,并带有相应的误报匹配。我想要一个更严格的图像哈希 - 唯一允许的更改是颜色的微小变化。

谁能推荐一个图像哈希库或算法?(不是应用程序,例如dupdetector)。

请记住:我的要求与许多类似问题的不同之处在于,我不想要像shrinkingpHash这样的自由算法,也不想要像结构相似性ImageMagick 的 compare这样的比较工具。

我想要一个散列,使非常相似的图像给出相同的散列值。这甚至可能吗?

4

1 回答 1

1

您可以查看以下名为“Spectral hashing”的论文。它是一种算法,旨在从图像中生成哈希码,以便将相似的图像组合在一起(参见本文末尾的检索示例)。这是一个很好的起点。

链接:http ://www.cs.huji.ac.il/~yweiss/SpectralHashing/

于 2012-04-25T10:26:04.163 回答