0
我在兩個不同的座標空間(A和B)中有一個3D配對點陣列。從3D數據計算非仿射變換矩陣
給定的點不是共面的,我該如何計算一個能夠將點從A轉換爲B的非仿射變換矩陣?
我已經設法在二維(使用單應性)做到這一點,但不能解決如何使它在3D中工作。如果可能,快速代碼示例將非常感謝。 :)
我在兩個不同的座標空間(A和B)中有一個3D配對點陣列。從3D數據計算非仿射變換矩陣
給定的點不是共面的,我該如何計算一個能夠將點從A轉換爲B的非仿射變換矩陣?
我已經設法在二維(使用單應性)做到這一點,但不能解決如何使它在3D中工作。如果可能,快速代碼示例將非常感謝。 :)
this post中描述的方法將概括爲三個維度:如果知道兩個座標系中的五個點的座標,則可以使用它們來計算4×4投影變換矩陣,這將是除了沒有幾何相關性的比例因子之外是唯一的。
我已經包括在variousposts用於2D所需的代碼的變型,sage寫的,並且還存在與the description沿提到的JavaScript示例。其中的任何一個都可以適應3D情況,但是如果您還想更改編程語言,那麼您可能會更好地直接實現公式,請記住,伴隨矩陣可以用作幾個矩陣的逆矩陣的替代位置。
下面是關於泛化一些細節3D:
謝謝 - 我知道如何在2D中做到這一點,但我不確定如何推廣到3D,特別是在步驟1,2和7中。 – John
感謝您的更新!在你的文章中你提到你使用了輔助矩陣來解決。你能解釋一下嗎? – John
在步驟1中,您必須求解一個線性方程,該方程可以通過將RHS向量乘以LHS矩陣的逆矩陣來實現。在第4步中,您需要進行反向操作。在這兩種情況下,您都可以使用伴隨而不是反向,最終結果只會因標量倍數而有所不同,這是沒有幾何結果的。 – MvG