如何检查重复图像? C#

时间:2016-12-16 13:06:37

标签: c# image console compare

所以,那就是我所拥有的。

我有一个包含大约30,000张照片的文件夹(很久以前的旧备份) 和第二个文件夹用作当前备份。

所以我只是想检查在第一个文件夹中我是否有第二个文件夹中没有的图片..如果我在文件夹1中找到了我已经在文件夹2中的图片,那么它将被删除文件夹1。

我想也许我应该将文件夹1中1张图片的磁盘大小与文件夹2中的所有图片进行比较。(2代表循环)

但是我看到我有两张不同尺寸的图片(磁盘尺寸)。 所以我无法真正使用它。

谁知道我应该怎么做? (记住我在文件夹1中获得了大约30k张照片,因此算法应该是高效的)ץ

为同一张照片获得了不同的哈希值。 :

            using (var md5 = MD5.Create())
        {
            using (var stream = File.OpenRead("C:/Users/Sam/Desktop/1.jpg"))
            {
                Console.WriteLine(BitConverter.ToString(md5.ComputeHash(stream)));
            }
           using (var stream2 = File.OpenRead("C:/Users/Sam/Desktop/2.jpg"))
            {
                Console.WriteLine(BitConverter.ToString(md5.ComputeHash(stream2)));
            }
        }

您好我确实使用过这个算法: Algorithm to compare two images in C#

但这太慢了。 (大约2-3秒将1张图像与100张其他图像进行比较,因此它将永远比较所有图像(约30k))..

1 个答案:

答案 0 :(得分:3)

计算每张图片的哈希值并使用哈希值来比较文件夹