0
我使用立體聲系統,所以我試圖獲得一些點的世界座標。我可以對每臺相機進行特定的校準,然後計算旋轉矩陣和平移矢量。最後我做了三角測量,但我不確定世界座標的起源。Opencv - 立體聲系統的三角起源
正如您在我的身材上所看到的,值與深度值相對應,但它們應接近400,因爲它是平坦的。所以我想,該原點是左攝像頭,爲什麼它個變量...
一塊我的代碼和我的投影陣列和三角測量功能:
#C1 and C2 are the cameras matrix (left and rig)
#R_0 and T_0 are the transformation between cameras
#Coord1 and Coord2 are the correspondant coordinates of left and right respectively
P1 = np.dot(C1,np.hstack((np.identity(3),np.zeros((3,1)))))
P2 =np.dot(C2,np.hstack(((R_0),T_0)))
for i in range(Coord1.shape[0])
z = cv2.triangulatePoints(P1, P2, Coord1[i,],Coord2[i,])
我的相機存在一個角度,Z軸方向(深度方向)不正常於我的表面。我想要從基線方向的深度。所以我必須旋轉我的觀點?
使用身份和零翻譯意味着一切都按照C1座標系計算,C1傳感器是原點。 – Thesane
好吧,但對於我不得不做的三角測量呢?如果我想「運輸」一個具有標準的地標與我的表面如何做到這一點?這是一種「剛體運動」轉變?感謝您的幫助;) – user3601754
您可以使用世界座標系中的C1旋轉矩陣和世界座標系中的C1平移來形成P1和P2。然後使用相同的想法形成P2。這樣triangleluatePoints將在世界座標系中給出4D點。如果你想這樣,我可以提供一個答案,但我只用C++做過,但你會明白 – Thesane