2016-12-16 11 views
2

だから私は何を持っている人。重複した画像を確認するにはどうすればよいですか? C#

私は、約30kの写真(長時間前の古いバックアップ) と2番目のフォルダを現在のバックアップとして使用して1つのフォルダを持っています。

私は、最初のフォルダに2番目のフォルダにない画像があるかどうかを確認したいと思います。もしフォルダ2に既にあるフォルダ1の画像があれば、それは削除されますフォルダ1.

から私は多分私は(forループ2で)フォルダ2内のすべての画像に対して、フォルダ1から1枚の画像のディスク上のサイズの間

を比較する必要があると思ったが、私は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#

を、それは遅すぎるかかります。 (1画像を100画像と比較するのに約2〜3秒かかりますので、すべての画像(約30k)を比較するのは永遠になります)。

+0

こんにちは。助けてくれてありがとう。 exeif-thumbnailについてもっと詳しく説明できますか? まだまだ新しいC# 私は自分でそれを行うプログラムをダウンロードすることができました。私はそれがどのようにできるかを理解したかったのです。 – ShmuelCohen

+0

[2つの画像を比較し、類似度の割合を%で返す]の可能な複製(http://stackoverflow.com/questions/6608315/compare-two-images-and-return-the-rate-of-similarity-in ) –

+0

1つのアプローチhttp://stackoverflow.com/questions/35151067/algorithm-to-compare-two-images-in-c-sharp 私は同じ画像のために – fubo

答えて

2

ハッシュ値を使って各画像を比較し、

+0

を編集する何を試したのですか – ShmuelCohen

+0

本当に同じ写真ですか、別の解像度か別のフォーマットですか?もしそれらがまったく同じであれば、ハッシュ値も同じでなければなりません。 – user7291698

+0

これは、ディスク上のサイズがまったく同じ画像です。 (私は5年前と同じように1回だけ彼女を連れて行きました) サイズは違っています(ディスクのサイズだけが同じです)。 多分、他に何か考えることができますか? – ShmuelCohen

関連する問題