如何识别具有不同大小的重复图像

时间:2017-11-01 22:45:18

标签: c++ image duplicates

问题是iv'e有一个超过80k图像的文件夹,其中大约40%是重复的。 (有些图片是旋转的,有些图片尺寸不同,但图片仍然相同)。

首先,我使用散列算法(使用c ++ / java)删除所有重复的图像(具有相同的大小和其他属性)。 但它似乎没有删除所有这些因为某些图片的大小不同(但视觉上相同)

我在网上搜索了很多,找到了解决这个问题的任何有效算法

我发现的问题最好的代码是pHash,但它过时了,不再使用VS了。

如果有人对我有所了解,那就太棒了。

感谢

1 个答案:

答案 0 :(得分:2)

除了散列算法,您还可以计算每张图片的histogram,然后compare them

在旋转的图像中,直方图应该完全相同,对于调整大小的图像,它应该非常相似。

Here有一个使用OpenCV进行直方图比较的例子。

我仍然建议首先使用散列,因为它应该更快,并删除第一组重复,然后使用直方图比较进行优化。