2011-01-10 103 views
1

目前我有一個數據庫,超過10萬的圖像,他們是不一樣的大小或類似的東西,但我想爲我的COMPAGNY如下:C# - 圖像比較(快速的)

我插入/上傳圖像,系統返回最有可能相同的圖像。我不知道要使用什麼算法,但它需要很快。我可以預處理所有其他圖像,並將一些信息放入我用於比較的數據庫中。

現在我想知道的最快方法是對圖像進行比較(與是相同的圖像的好機會)什麼什麼。我應該將哪些數據保存到數據庫中(如果我有算法,我可以自己弄清楚這個數據)。

它不應該採取更多然後5分鐘上傳的圖像進行比較,以數據庫中的所有圖像。

在此先感謝!

朱利安

www.tineye.com,他們有某種算法,我要找的。猜測他們使用的是非常複雜的一個,我只需要一個能做同樣的事情,但成功率較低的人。

+0

您可能會發現在http://stackoverflow.com/questions/1261687/ – hangy 2011-01-10 14:34:20

+0

一些有用的信息感謝您的評論hangy,我發現了一些其他帖子在stackoverflow。但是他們中的大多數沒有任何代碼/鏈接來編碼,而是鏈接到數學藝術作品。我想知道是否有某種圖書館在那裏。 – Julian 2011-01-10 14:36:15

回答

1

我會做的方式是我生成你對每比較像一個非常小的(說..原始圖像大小的1/50)的圖像,以及縮略圖路徑存儲與沿數據庫中的原始大小。我會保留縮略圖作爲未壓縮的bmp的速度和無損性能(我只是寫了這個單詞!),因爲它們太小了。

要對其他的人比較你的新形象,收縮下來相同的量,並通過像素也反對其他像素相比,具有一定的閾值(比方說..從原來的10%的差異)。

如果通過測試,你可以做一個完全成熟的逐像素比較與原始圖像。

編輯:我只是想指出,我之前也走下概率的方式。它工作正常,但爲這些圖像構建元數據需要花費很長時間,並且存在很多誤報。本能地,我認爲爲圖像的每個網格矩形計算局部平均值(這是縮小圖像的縮小比例)會給出類似的結果,即使不是更好的結果。

1

比較的最佳方法是將圖像轉換爲灰度格式並比較灰度的灰度。它是實時系統中使用最快的方法。

此外,如果你想獲得更高的qaullity並使用彩色圖像 - 使用CIE 1994年或2000 CIE作爲色差公式