1. 程式人生 > >影象拼接演算法的基本原理

影象拼接演算法的基本原理

轉自:http://blog.csdn.net/yuyin86/article/details/6690423

全景視訊是一種利用360 度全景圖象建立虛擬環境的新方法。全景圖象是通過將普通照相機拍照到的邊界部分重疊的圖象進行拼接而建立的。可以利用圖象重疊部分對應畫素的相似性, 通過採用一種行之有效的拼接演算法, 使得到的圖象無縫平滑。

來自研學論壇 Walkfarer和SCQ的帖子:

影象拼接是計算機視覺中的重要分支,它是將兩幅以上的具有部分重疊的影象進行無縫拼接從而得到較高解析度或寬視角的影象。目前成形演算法原理大致如下:
1、頻率域:(不甚清楚)
     利用"相位相關法"完成兩幅影象的平移估計(只能精確到畫素級)。


2、空間域:
(1)基於特徵的方法:找出特徵點,進行匹配。
a.使用HARRIS角點,然後使用灰度相關加鬆弛匹配找到對應點,如果兩幅影象重疊區域較大,且透視變形較小,可以考慮使用這種方法。

b.通過特徵點的梯度方向等資訊,確定一組最佳的特徵匹配,利用這一組資料給出兩幅影象間變換矩陣的估計初值,再利用遞迴演算法找到最終的精確變換關係。在拍攝圖片的相機的旋轉與縮放不是很大的情況下可以實現較好效果。
(2)和基於光差的方法(方法精確但收斂慢)。應用最廣泛的一類拼接演算法是柱面與球面影象的拼接,經過球面與柱面變換後,問題就歸結為確定每幅影象的平移量。 

以上是我閱讀了一些文章總結出來的,貽笑大方了。希望各位修正或新增之。



*********csq************
我來補充吧.
1 頻率域: 一般是用fourier的相位相關,可以估計出頻移,旋轉,縮放。
頻移沒什麼好討論的,比較簡單, 估計縮放和旋轉一般是變到極座標系去做,無數的paper討論這個問題,前面討論“怎樣判斷兩幅影象有沒有重疊”的帖子,我給了一篇paper,今年ieee tran ip的。 還不錯。頻率域的有人做sub-pixel. 這個我也說過, university of centrl florida 的那個什麼faroon (名字記不清了), 寫了一篇這樣的,但好像只能處理頻移的sub-pixel. 我還發email問過他有沒有處理旋轉的sub-pixel. 他沒有回。 ft.

2.空域: 
1 。樓主遺漏了基於intensity的方法,不過確實用的不多了。
2。 特徵的方法:
看來最多的是 point-rgistration. 不過還是有做用邊緣啊那些其他特徵去拼的人 。 
下面我就介紹一下point發.
Point-registration: 
1.經典的harris point, 現在有不少修正版 ,因為harris 當時對引數的選擇並沒有給出很好的建議,所以引數選擇比較煩,我以前就試過很多引數. 
參考文獻:A Mathematical Comparison of Point Detectors
Evaluation of Interest Point Detectors
找到特徵點那就要去匹配拉。
一般是先初步估計一下,剔出差太多的匹配對。 可以用intensity的各種方法,但是這就擺出一個問題: 光照。 很麻煩,兩幅圖的光照差很多的話,有可能根本弄不出來匹配的點,但你從圖上明顯可以看到很多對都是匹配的。這個等會討論。
2.然後進一步估計匹配,RANSAC用的最多,也有其他的方法, 像paper: MLESAC- A new robust estimator with application to estimating image geometry.
估計出匹配對,然後就要算那個亂七八糟的矩陣。 又是很多方法可以來做。一般是各種優化演算法像 LM之類的。
3.算出矩陣,然後把一個變到另外一個的座標系,就是融合的問題了。咋個無縫拼接是個問題。 Szeliski的方法用的多,paper我忘了,等會那篇review裡面可以查到。

沒有考慮的問題:
1. 假設是perfect 的各種關係,像頻移,旋轉,縮放,仿射,實際上並不那麼簡單,實際數碼照的片子關係很複雜。
2. 光照。剛才說了,大問題。在估計匹配點,矩陣,甚至最後融合都會引入不少麻煩。

SIFT 方法好,可以解決一些問題,

經典的一篇綜述
Image alignment and stitching- A tutorial