你在找什麼的
例子是「光流」。搜索這些條款將產生許多結果。
在OpenCV中,有一個名爲calcOpticalFlowFarneback()的函數(在視頻模塊中)可以做你想做的事情。 C API仍然實現了Horn & Schunck(1981)提出的名爲「確定光流」的經典論文。你可以看看我已經完成的工作以及一些代碼(但要小心,opencl內存代碼中仍然存在一些神祕的bug,我將在今年晚些時候發佈一個更正的版本)。 :http://lts2www.epfl.ch/people/dangelo/opticalflow
除了OpenCV的光學流程(以及我的;-),您可以在itk.org上看到ITK完整的圖像配準鏈(主要針對醫學成像)。
還有很多光流程代碼(matlab,C/C++ ...),可以找到感謝谷歌,例如cs.brown.edu/~dqsun/research/software.html,gpu4vision等
- 編輯 - :密集的,和其他人的光流
光流的算法兩個家庭分開。 密集算法給每個像素一個運動矢量,每個跟蹤特徵不密集一個矢量。
密集家族的例子包括Horn-Schunck和Farneback(以及opencv),更一般地說,任何算法都會使整個圖像(各種TV-L1流等)的成本函數最小化。
非密集家族的一個例子是KLT,在opencv中稱爲Lucas-Kanade。
在密集家庭中,由於每個像素的運動幾乎都是空閒的,因此它可以處理尺度變化。請記住,這些算法在大運動/尺度變化的情況下可能會失敗,因爲它們通常依賴於線性化(泰勒展開運動和圖像變化)。此外,在變分方法中,每個像素都有助於整體結果。因此,在一幅圖像中看不見的部分可能會使算法偏離實際的解決方案。
無論如何,採用從粗到細的技術來繞過這些限制,這些問題通常只有很小的影響。殘酷的光照變化或大的遮擋/未遮擋區域也可以通過一些算法明確地處理,參見例如this paper,其計算沿光流場的「創新」的稀疏圖像。
兩個備註: 1. SIFT不是一個圖像配准算法。這是計算圖像中局部特徵的算法。在您的情況下獲取匹配像素對可能會有所幫助。 2.你有轉型的數學模型嗎? – 2012-04-25 11:27:20
我知道SIFT,但我認爲如果我有高密度的興趣點對,我可以插入其他像素。 理論上我有變形的總和 桶/枕形 u = x + Const *(x * x + y * y)* x; v = y + Const *(x * x + y * y)* y; u =(m11 * x + m12 * y + m13);以及梯形 。 v =(m21 * x + m22 * y + m23); rotation u = x * cosa-y * sina; v = x * sina + y * cosa; – mrgloom 2012-04-25 11:41:54