我正在截取应用程序的屏幕截图,并尝试检测之前是否看过确切的图像。我正在寻找不同的细微变化 - 例如,如果图像中有文本,并且拼写发生变化,这算作不匹配。
我已经成功地使用屏幕截图图像内容的 MD5 哈希在已知图像的数据库中查找,并检测它是否以前见过。
现在,我已将它移植到另一台机器上,尽管我尝试完全匹配配置,但我得到的图像与旧机器略有不同。当我说不同时,变化是微小的——如果我炸毁新旧图像并在它们之间轻弹,我看不到任何区别!尽管如此,ImageMagick 的compare
命令可以看到一些不同的像素。
所以我的 MD5 哈希不再匹配。我需要一个图像散列,而不是简单的 MD5散列。
在进行研究时,我发现大多数图像哈希都试图相当慷慨——它们接受调整大小、转换和加水印的图像,并带有相应的误报匹配。我想要一个更严格的图像哈希 - 唯一允许的更改是颜色的微小变化。
谁能推荐一个图像哈希库或算法?(不是应用程序,例如dupdetector)。
请记住:我的要求与许多类似问题的不同之处在于,我不想要像shrinking或pHash这样的自由算法,也不想要像结构相似性或ImageMagick 的 compare这样的比较工具。
我想要一个散列,使非常相似的图像给出相同的散列值。这甚至可能吗?