感知哈希 (pHash) 图像颜色 vs 灰度 vs 阈值 这是最佳输入源



我研究了很多,但找不到明确的答案。 哪种图像颜色最常用于 pHash 输入以生成哈希/指纹。

例如,我有一个要在源图像中查找的目标图像,但目标可以有多种颜色和阴影,但形状始终相同(例如:郁金香(。 我已经按原样对图像进行了实验,变成了灰度和阈值(纯黑白(。 我知道大多数 pHash 库会在进行哈希之前先对输入进行灰度缩放。

但是在我继续之前,预处理图像颜色值得吗?(忽略大小和旋转,并假设源和目标相同(

因此,经过测试和更多研究,最好使用原始彩色图像。 无论如何,大多数pHash都会对图像进行灰度缩放,因此执行同性恋比例后进行内部灰度实际上会产生较差的结果。 阈值(纯黑白(也是如此。 有更多的碰撞和更多的误报。

我使用了 64 位 pHash,效果很好。 我还尝试了小波哈希,它有利于颜色变化,但不利于整体匹配。

对我有用的是一个大型数据集,它被输入到二进制树中。 这样查找速度很快,并且有很多示例可以比较。 对于Java,我使用了:https://github.com/KilianB/JImageHash