2010-09-25 44 views
1

我需要儘可能快地比較兩個圖像。我不需要知道差異或其他任何我只需要知道它們是否相同,是/否,真棒。什麼是最快的方法來做到這一點?最快的方法來比較兩個圖像

謝謝,R.

+0

什麼樣的圖像?如果他們「是相同的」,你的意思是什麼?如果它們是一個字節一樣的字節?或者他們對人類「看起來是一樣的」(假設你的意思是像.png或.jpg這樣的圖像)? – NullUserException 2010-09-25 01:27:48

+0

他們是相同的格式和大小?它們是不同的壓縮方案的格式?有損或不? – JoshD 2010-09-25 01:33:10

+0

可能重複[我能比較兩個相同大小的位圖以確定它們是否相同的最快方式?](http://stackoverflow.com/questions/2031217/what-is-the-fastest-way-i -can-compare-two-equal-size-bitmaps-to-determine-whethe) – 2012-04-24 09:47:58

回答

1

如果預期它們是相同的,逐再見像@NullUserException提到的,最簡單的解決方法是使用如MD5的散列。如果您想要獲得更高級的圖像,可以獲取第一張圖像中每個像素的RGB值,並計算第二張圖像中像素的歐式距離,以檢查它是否低於某個閾值。一切都不是很快:)

+1

不會逐字節比較每個文件,直到找到差異比計算兩者的md5校驗和快得多? – JoshD 2010-09-25 02:00:05

+0

@JoshD:對於不同的圖像來說,它肯定會快得多,對於相同的圖像來說,速度要快得多。 – 2010-09-25 02:03:02

+1

如果您只是將一個文件與另一個文件進行比較,則使用散列沒有任何優勢。但是,如果您要將一個圖像與多個圖像進行比較,則計算散列所花費的時間將在散列值的多個比較之間攤銷。比較哈希比比較字節的字節快很多倍,因爲哈希值相對於原始數據非常小。如果您試圖確定新圖像是否已經存在於大量圖像集合中,請計算一次散列並進行多次比較(將每個圖像的散列存儲到集合中時進行存儲,因此它很便宜且易於獲取) 。 – dthorpe 2010-09-25 03:08:52

相關問題