我查了很多资料,但没有找到明确的答案。 pHash 输入最常使用哪种图像颜色来生成哈希/指纹。
例如,我有一个正在源图像中查找的目标图像,但目标可以有多种颜色和阴影,但形状始终相同(例如:郁金香)。我按原样对图像进行了实验,将其变成灰度和阈值(纯黑和白)。我知道大多数 pHash 库都会在进行哈希之前先对输入进行灰度化。
但是在我继续之前,预处理图像颜色值得吗? (忽略大小和旋转,并假设源和目标相同)
最佳答案
因此,经过测试和更多研究后,最好使用原始彩色图像。无论如何,大多数 pHash 都会对图像进行灰度缩放,因此先执行同性恋缩放,然后再执行内部灰度缩放实际上会产生较差的结果。阈值(纯黑和白)也是如此。发生了更多的碰撞和更多的误报。
我使用了 64 位 pHash,效果非常好。我还尝试过使用 Wavelet Hash,它有利于颜色变化,但不利于整体匹配。
对我有用的是输入到二叉树中的大型数据集。这样,查找速度很快,并且有很多示例可供比较。对于 Java,我使用:https://github.com/KilianB/JImageHash
关于java - 感知哈希 (pHash) 图像颜色与灰度与阈值哪个是最佳输入源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62371689/