2013-10-21 70 views

回答

2

這個問題有點不清楚,但我認爲,你想找到正確的相機相對於零件的姿勢。如果是這種情況,最簡單的方法如下:

  • 讓Q_pl成爲左側攝像機相對於零件的姿勢。這由4×4矩陣表示,其前3行和列是部分w.r.t的旋轉矩陣R_pl。左攝像機(您的RVEC),底行是[0,0,0,1],和頂部3行的4列是平移向量t_pl 的成分從相機的部分(你的tvec)。爲了澄清,你寫Q_pl通過從照相機寫作,ordinately,在該部分的x,y和z軸的單位矢量(與從相機看到的)作爲列向量的相機框架的組件,然後將所述載體部分,然後寫[0,0,0,1]作爲第四行。
  • 同樣,讓Q_lr是左相機的姿勢(從校準獲得的)相對於所述正確的。你寫此4x4矩陣鋪設在x,y的分量,左攝像機的z單位矢量(從右側一個看到),爲列向量,隨後平移矢量右攝像機左側一個,然後寫[0,0,0 1]作爲第四行。
  • 部分w.r.t.的姿勢右照相機是然後簡單地將兩個矩陣的乘積:

    Q_pr = Q_pl * Q_lr

注意的因素問題的順序。這種表達方式只是說,要從正確的攝像頭移動到部件,您可以先從右側攝像頭移到左側攝像頭,然後再從那裏移動到部件。同樣,此變換的旋轉部分位於Q_pr的前3行和3列中,右側相機到部件的平移向量位於第4列。

請注意,您的校準程序可能給你Q_rl,而不是Q_lr。如果是這種情況,您只需將其反轉。逆很容易計算:

R_lr = transpose(R_rl) 
t_lr = -(R_lr * t_rl) 

同樣地,你會反轉Q_lp如果這是你solvePnP生產什麼,而不是Q_pl。

+0

謝謝你,很好的答案,正是我需要的。 – hokiebird