2010-12-21 60 views
3

我有2個圖像。一個是參考圖像,另一個是參考圖像的旋轉版本。我想找出第二張圖片旋轉到第一張的角度是多少,我想自動完成。找到一個圖像相對於其他圖像的旋轉

+1

第1步:找到或設計一個合適的數學算法。步驟2:在Matlab中對算法進行編碼。如果你需要第一步的幫助,我會建議詢問math.stackexchange.com;這是一個相當困難的問題。如果你在第二步,你的算法是什麼? – aschepler 2010-12-21 19:43:00

+0

@aschepler:這實際上是一個在過去幾年中已經解決的問題。 – 2010-12-21 20:57:22

回答

4

蠻力吧!編寫一個函數來比較旋轉後的圖像的交集(每個點之間差的平方和的差值或總和),然後遍歷旋轉角度以找到對應於最小差值的值。

雖然知道matlab有可能只是告訴你旋轉的函數,但它被稱爲奇怪的東西。

+1

迭代`-pi`和`pi`之間所有可能的`double`值?但是那個輔助函數可以用最小化求解器來實現...... – aschepler 2010-12-21 19:49:15

+0

嗯,取決於你想要的有效數字。我認爲值得保持它儘可能簡單。 – 2010-12-21 20:07:57

+0

如果您知道發生旋轉的圖像中的點,這將是可行的。 – gnovice 2010-12-21 21:16:40

2

注:由於問題沒有最初索要自動的解決方案,我已經張貼了這個解決方案,它需要一系列的控制點,以用戶爲每個圖像選擇。雖然在問題的要求進行了更新,我想這個答案可能仍然是任何人想要做圖像配準在MATLAB是有用的,所以我離開這裏吧...

非自動化的方法:

你問的是image registration,你有一個選擇是使用Image Processing Toolbox的功能CP2TFORM

實際上,該函數的文檔中有一個very nice example,它看起來像解決了您正在嘗試解決的相同確切問題。

4

這樣做的一般方法是:

  • 使用的算法如SIFT拿到興趣點的描述符的列表。這些描述符提供了興趣點的尺度,方向和幾何形狀。幾何信息是比例和旋轉不變的。

  • 使用最近鄰算法通過比較幾何圖形來匹配每張圖片中的興趣點。

  • 對於每一對匹配的興趣點,比較它們的比例和旋轉。

理想情況下,所有匹配的興趣點將具有相同的相對比例和旋轉。然而,變異如何照片拍攝和不準確的前階段將引入可變規模和旋轉,所以:

  • 使用的算法如RANSAC確定最佳擬合縮放和旋轉。

QED

0

這是關於如何使用計算機視覺系統工具箱中的局部特徵和RANSAC恢復兩幅圖像之間的變換的example