有兩個3維坐標系A 和 B,已知3個點在兩個坐標系 的坐標列向量 Av 和 Bv. 求 A坐標系中其它點(列向量a) 在 B坐標系的坐標(列向量b)。
我使用eigen 矩陣來計算過渡矩陣P , P = Av 的逆 * Bv,那么任意坐標 b = P * a;但檢查發現 Av和 Bv3個 點可以互相轉換,但其他點轉出來為例外值。 比較急,求指教。因為代碼暫不方便上傳,有能解決該問題的請留下聯系方式,因問題較急,可協商支付報酬。非常感謝。
uj5u.com熱心網友回復:
https://blog.csdn.net/u012501459/article/details/41719939uj5u.com熱心網友回復:
網上應該有相應的演算法,要自己轉成代碼uj5u.com熱心網友回復:
Bv=Av*XAv 三個點坐標A的矩陣
Bv 三個點坐標B的矩陣
求X矩陣就是
uj5u.com熱心網友回復:
OPENCV凡是用函式解決不了的,數值方法跑起來,反正有矩陣乘法就好了
uj5u.com熱心網友回復:
前提:三點不共線。分別為pt1,pt2,pt3(1)這里要用到3個坐標系:A、B、三點確定的坐標系C
(2)以pt1為C坐標系原點,pt1和pt2確定的單位向量為C坐標系的X軸,pt1和pt3確定的單位向量為C坐標系Y軸,根據C坐標系X、Y軸確定Z軸,再根據X、Z軸修正Y軸得正交坐標系,這樣可以分別得到C坐標系原點及XYZ軸在A、B坐標系下的描述
(3)根據第二點,可以構造C坐標系到A坐標系的轉換矩陣和C到B的轉換矩陣,這樣矩陣求逆可以得到A到C坐標系的轉換矩陣
(4)由第三點,A到C坐標系轉換矩陣以及C到B轉換矩陣都知道,兩矩陣運算得A到B坐標系轉換矩陣,這樣分別對A坐標系中點做矩陣運算得其在B坐標系中的描述(即坐標)
描述清楚了沒?
uj5u.com熱心網友回復:
首先你的3個點在兩個坐標系 的坐標列向量 Av 和 Bv是3行1列的, 那么你的過渡矩形乘法應該這樣寫:P *Av = Bv(Av*P = Bv是錯誤的,因為3*1的矩陣不能和3*3的矩陣相乘),這樣你的P中有9個未知數,然而才3個方程,所以你的P矩陣不唯一,你應該找到更多的點(至少3個點)在2個坐標系中的對應關心才能得到唯一的過渡矩陣P。求出了過渡矩陣那么你就可以知道其他的A坐標系中其他點在B坐標系中的坐標。另外矩陣要可逆行列式的值不能為零,你求Av 的逆是錯的,因為Av為3*1的列向量,它不可逆。。uj5u.com熱心網友回復:
800年前登錄過uj5u.com熱心網友回復:
https://blog.csdn.net/u012501459/article/details/41719939uj5u.com熱心網友回復:
首先你的3個點在兩個坐標系 的坐標列向量 Av 和 Bv是3行1列的, 那么你的過渡矩形乘法應該這樣寫:P *Av = Bv(Av*P = Bv是錯誤的,因為3*1的矩陣不能和3*3的矩陣相乘),這樣你的P中有9個未知數,然而才3個方程,所以你的P矩陣不唯一,你應該找到更多的點(至少3個點)在2個坐標系中的對應關心才能得到唯一的過渡矩陣P。求出了過渡矩陣那么你就可以知道其他的A坐標系中其他點在B坐標系中的坐標。另外矩陣要可逆行列式的值不能為零,你求Av 的逆是錯的,因為Av為3*1的列向量,它不可逆。。uj5u.com熱心網友回復:
一起學習,,謝謝諸位大神們!uj5u.com熱心網友回復:
好厲害。。。uj5u.com熱心網友回復:
頂一下,我是新手,要多看看uj5u.com熱心網友回復:
頂,學習一下uj5u.com熱心網友回復:
可以這么理解轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/52937.html
標籤:圖形處理/算法
上一篇:0x01246969 處有未經處理的例外(在 SFFPlayer.exe 中): 將一個無效引數傳遞給了將無效引數視為嚴重錯誤的函式。
下一篇:opencv小白求助
