2016-12-16 52 views
2

所以我就是這樣的人。如何檢查重複的圖像? C#

我有一個大約30k圖片的文件夾(從很久以前的舊備份) 和用作當前備份的第二個文件夾。

,所以我只是想檢查,如果在第一個文件夾中我得到了我沒有在第二個文件夾中有圖片..如果我得到的文件夾1的畫面,我已經在文件夾2,這樣它就將被刪除從文件夾1.

我想,也許我應該在大小之間的1個畫面的磁盤文件夾,從1對所有的圖片文件夾2.比較(與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))); 
      } 
     } 

嗨,我沒有使用此algoritem: Algorithm to compare two images in C#

,但它採取太慢。 (大約需要2-3秒將1張圖片與100張圖片進行比較,所以它會永遠比較所有圖片(大約30k))。

+0

嗨。感謝您的幫助.. 也許你能解釋我更多關於exeif縮略圖? 我還在kindaof新的C# 我可以下載一個程序,由她自己做的我想了解它是如何做。 – ShmuelCohen

+0

[比較兩張圖片,並返回相似度百分比]的可能重複(http://stackoverflow.com/questions/6608315/compare-two-images-and-return-the-rate-of-similarity-in ) –

+0

一種方法http://stackoverflow.com/questions/35151067/algorithm-to-compare-two-images-in-c-sharp – fubo

回答

2

計算每張圖片的散列值,並使用散列值比較文件夾

+0

爲相同的圖片我得到不同的哈希.. 我編輯帖子以顯示我試過 – ShmuelCohen

+0

他們真的是一樣的圖片還是他們可能有不同的分辨率或不同的格式?如果它們完全相同,散列值也必須相同。 – user7291698

+0

那麼這是一張磁盤上的大小完全相同的圖片。和圖片她自己是真的一樣(我帶她只是5年前的一次..) 我真的不知道如何,但大小是不同的(只有在磁盤上的大小是相同的)。 也許你能想到的其他東西? – ShmuelCohen