2010-07-05 43 views
0

我有一堆图像下载后,他们下载我想检查他们对一个“特殊”的图像,看看是否有完全一样的图像。要做到这一点,我可以直接逐项比较数组,或者我可以计算一个散列并进行比较。图像直接比较vs散列

我认为在这种情况下直接比较会更快,因为我们只做一个比较,所以散列的成本将大于节省比较花费的时间。但是,我不确定这个推理是否正确(这就是我要问的原因)。我可以看到,如果你对每个图像进行多重比较,哈希值就会变成它自己的值,但在这种情况下,我不会。

不可否认,我可以只实现解决方案和基准测试(但问这样的问题很有趣)。

回答

1

是的,只是比较像素逐像素应该更快。但在边界情况下,它可能取决于图像的大小(以及其他上下文参数) - 例如,如果图像非常大,则最好计算散列值,这会导致内存访问成本开始达到峰值。