在計算機視覺的背景下,2d affine是2d homography的子集。
從幾何意義上講,
2d homography是用來計算一堆在同乙個三維平面上的點在不同的二維影象中的投影位置的,是乙個一對一的對映。
2d affine是2d homography的乙個特例,它對應著的情況是這個三維平面在無窮遠。
從代數特性上講,2d homography是乙個rank=3或者說可逆的矩陣,一般可以表示為:
h11 h12 h13
h21 h22 h23
h31 h32 1
affine是它的簡化形式,不但可逆而且第三行沒有未知數:
a11 a12 a13
a21 a22 a23
0 0 1
計算homography(線性解)需要4對不共線的點,計算affine只需要3對不共線的點。
一般要用ransac這個方法來得到精確、魯棒的結果。affine一般比homography更穩定一些,
所以可以先計算affine,然後再用affine作為homography的初始值,進行非線性優化(比如levenberg marquardt)。
幾何視覺方向最經典的教科書還是multiple view geometry in computer vision,講得很詳細、很透徹。實在是求學教課居家旅行必備啊。
當然affine在數學中有更廣泛、更準確的定義了,可以看看wiki上的說法(在教科書裡也說到了):
樓上各位解釋的沒錯啊,homography是共線不變, affine是不但保證共線,而且保證距離的比不變。
你說的object的變換不太對。
homography可以用來計算一幅影象中的不同平面的變換,
也可以是不同影象中的同乙個平面的變換。affine是它的特殊情況。
單應性矩陣是在攝像頭標定中提出來的,是從物體的世界座標到理想畫素點之間的投影矩陣(僅僅差乙個係數)。
維基百科中有對單應性(homography)矩陣的詳細解釋
如果兩幅影象之間的相機運動只有旋轉而沒有平移,那麼這兩幅影象通過單應性關聯在一起(假定是針孔相機)
在兩視幾何中,可以
這樣理解,兩架相機拍同一空間上得到兩幅影象ab
,其中一幅a在另一幅b存
在一種變換而且是一一對應
的關係,他們之間可以用矩陣表示 這個矩陣用單應矩陣
空間x-y座標平面與影象平面之間的單應矩陣可以提供關於攝像機內引數的2個線性約束.比如:
給定乙個一般空間平面與影象平面之間的單應矩陣,如果空間平面在世界座標系的座標已知,則該單應矩陣同樣可以提供關於攝像機內引數的2個線性約束;
如果空間平面在世界座標系的座標未知,則該單應矩陣不能構成對攝像機內引數的任何約束.另外,僅僅知道某乙個場景中的2幅影象間的單應矩陣不能對攝像機內引數構成任何約束.該結果對從事攝像機標定和三維重建的研究人員有一定的參考作用.
線性求解單應矩陣 Homography
定義 2d單應 給定影象 mathbb 中的特徵點集 mathbf i 和另一幅影象在 mathbb 中對應的特徵點集 mathbf 將 mathbf i 對映到 mathbf 的射影變換。在實際情況中,點 mathbf 和 mathbf 是兩幅影象上的點,每幅影象都視為一張射影平面 mathbb ...
Homography單應性矩陣程式實現
單應性矩陣重要應用在求解兩幅影象的對映關係,或者影象座標與世界座標的對映關係。這裡主要在張正有相機標定法的基礎上,求解h。具體理論為請點 相機標定法 張正有 opencv程式實現 std vector pt1 4 std vector pt2 4 pt1 0 point2f 0,0 pt1 1 po...
機器視覺 (1) 單應矩陣Homography
本文 這裡 在計算機視覺中,平面的單應性被定義為乙個平面到另外乙個平面的投影對映。因此乙個二維平面上的點對映到攝像機成像儀上的對映就是平面單應性的例子。如果點q到成像儀上的點q的對映使用齊次座標,這種對映可以用矩陣相乘的方式表示。若有一下定義 則可以將單應性簡單的表示為 這裡引入引數s,它是任意尺度...