2011-07-21 42 views
0

我有5張圖片默認情況下,該程序,我將允許用戶選擇從桌面的圖像。該程序將確定5幅圖像之間的哪個圖像與用戶圖像最接近。如何比較Java中的兩個圖像?

誰能幫我把我的想法開始?

+1

你必須描述你的約束略勝一籌。是一個90度旋轉的圖像「關閉」? – aioobe

+0

這是一篇關於TinEye如何工作的文章。雖然,您可以修改一些步驟,因爲您沒有與數千個圖像進行比較。 http://www.hackerfactor.com/blog/index.php?/archives/432-Looks-Like-It.html – MikeKusold

回答

4

你可以嘗試使用特徵提取算法像SIFTSURF等,然後與數據庫比較提取的特徵。您可以根據正確匹配的數量選擇最匹配的圖像。

一般來說,SIFT對二維對象很有效,比如標籤或廣告牌的圖片。如果您使用SIFT,在2D平面或比例尺上旋轉將無關緊要。 SURF被認爲是SIFT的一個改進,但我沒有太多的經驗。

這些算法被認爲是有點重。無論如何,如果你只匹配5張圖片,那麼它不會是一個大問題(或者你可以簡單地計算你的圖片的描述符(特徵),然後在運行時你只需要獲取描述符用戶圖像並進行比較)但是,如果您嘗試匹配正方形和圓形等基本形狀的圖像,則使用方形檢測或圓圈檢測可能是高效的性能明智之舉。