我研究了很多,找不到明确的答案。pHash 输入最常使用哪种图像颜色来生成哈希/指纹。
例如,我有一个在源图像中寻找的目标图像,但目标可以有多种颜色和阴影,但形状始终相同(例如:郁金香)。我已经对图像进行了试验,变成了灰度和阈值(纯黑色和白色)。我知道大多数 pHash 库会在生成哈希之前首先对输入进行灰度化。
但是在我前进之前是否对图像颜色进行预处理值得?(忽略大小和旋转,并假设源和目标是相同的)
我研究了很多,找不到明确的答案。pHash 输入最常使用哪种图像颜色来生成哈希/指纹。
例如,我有一个在源图像中寻找的目标图像,但目标可以有多种颜色和阴影,但形状始终相同(例如:郁金香)。我已经对图像进行了试验,变成了灰度和阈值(纯黑色和白色)。我知道大多数 pHash 库会在生成哈希之前首先对输入进行灰度化。
但是在我前进之前是否对图像颜色进行预处理值得?(忽略大小和旋转,并假设源和目标是相同的)
因此,经过测试和更多研究后,最好使用原始彩色图像。无论如何,大多数 pHash 都会对图像进行灰度化,因此执行一个 gay 比例,然后执行内部灰度实际上会产生较差的结果。阈值(纯黑色和白色)也是如此。有更多的冲突和更多的误报。
我使用了 64 位 pHash,效果很好。我还尝试了 Wavelet Hash,它有利于颜色变化,但不利于整体匹配。
对我有用的是一个输入到 BinaryTree 的大型数据集。这样,查找速度很快,并且有很多示例可供比较。对于我使用的 Java:https ://github.com/KilianB/JImageHash