2012-07-21 44 views
3

我對通過基於強度的註冊來計算一幅圖像與另一幅圖像的最佳匹配點有一個查詢。我想對我的算法一些意見:算法 - 將圖像變形到另一個圖像並計算相似性度量

  1. 計算在本次迭代

  2. 對於圖像A的每一個點的經線矩陣,

    2A。我們將特定圖像與扭曲矩陣的像素座標扭曲成圖像B

    2b。如果翹曲點座標位於圖像B中,則執行插值以獲得相應的強度表單圖像B.

    2c。通過在圖像的每個像素通過各種可能的旋轉和平移計算翹曲像素之間的相似性測量值A的強度和變形的圖像乙強度

  3. 週期

  4. 週期

這將是好?有沒有我們可以參考的任何相關的opencv代碼?

回答

0

對算法評論

但你必須要小心你的算法似乎不錯:

  1. 邊緣效應:您需要確保該算法不利於比賽,其中最形象A不重疊圖像B.例如,您可能希望計算平均相似性度量並限制變換以確保至少有50%的像素重疊。

  2. 計算複雜度。可能需要考慮很多可能的翻譯和旋轉,並且這種算法在實踐中可能太慢。

  3. 經紗的類型。根據您的應用,您可能還需要考慮透視/照明變化以及平移和旋轉。

加速

類似的算法在視頻編碼器是常用的,但大多數會忽略轉/角度的變化,只是搜索翻譯。

一種比較常用的方法是對最佳匹配進行梯度搜索。換句話說,嘗試以幾種不同的方式調整翻譯/旋轉(例如左/右/上/下16像素),並選擇最佳匹配作爲新的起點。然後重複這個過程幾次。 一旦你不能改善比賽,減少你的調整的大小,然後再試一次。

替代算法

根據您的應用程序,你可能要考慮一些替代方法:

  1. 立體匹配。如果你的2張圖片來自立體相機,那麼你只需要在一個方向上進行搜索(並且OpenCV提供了有用的methods來做到這一點)

  2. 已知模式。如果你能夠在你的圖像中放置已知的圖案(例如棋盤),那麼註冊它們變得更容易(並且OpenCV提供methods來查找和註冊某些類型的圖案)。圖像配準的一種常用方法是搜索獨特的點(例如,角點類型或更一般的感興趣的地點),然後嘗試在兩個圖像中找到匹配的獨特點。例如,OpenCV包含用於檢測SURF功能的功能。谷歌發佈了一個很好的paper使用這種方法來消除我推薦閱讀的捲簾快門噪音。