不計算校驗和,計算哈希值!
我曾經創建過一個簡單的應用程序,它必須在我的硬盤上查找重複的圖像。它只會搜索.JPG文件,但對於每個文件,我會計算出前1024個字節的散列值,然後將圖像的寬度,高度和大小追加到它以得到如下字符串:「875234:640:480: 13286「,我將它用作圖像的關鍵字。 事實證明,我沒有看到這個算法有任何錯誤的重複,儘管仍然有錯誤重複的機會。 但是,這種方案將允許有人只是增加一個字節,或對圖像進行非常小的調整時重複。
另一個竅門可能是減少每個圖像的大小和顏色數量。如果將每個圖像的大小調整爲128x128像素,並將顏色數量減少到16(4位),那麼您最終會得到8192個字節的合理獨特模式。計算這個模式的散列值並使用散列作爲主鍵。一旦你點擊了,你可能仍然有誤報,因此你需要比較新圖像的模式和系統中存儲的模式。 如果第一個散列解決方案指示新圖像是唯一的,則可以使用此模式比較。儘管如此,我仍然需要爲自己的工具制定計劃。但它基本上是一種採取圖像指紋,然後比較它們。
我的第一個解決方案將找到完全匹配。我的第二個解決方案會找到類似的圖像(順便說一下,我在Delphi中編寫了我的哈希方法,但從技術上講,任何哈希方法都會足夠好。)
可能那個科學工具是Sikuli.org? – David 2012-01-18 02:46:41
這不是,我很抱歉,直到今天,我仍然不記得它的名字。我似乎沒有提及它了:( – Jake 2012-01-18 22:16:46