我正在使用2個攝像頭進行頭部姿態估計項目。對於一個攝像機系統工作並返回相對於每個攝像機座標系的頭部的旋轉矩陣和平移向量。我在OpenGL場景中渲染了對象,該場景被旋轉並翻譯成表示頭部動作。要顯示計算旋轉矩陣和平移向量,我只需使用以下OpenGL命令。2個攝像頭的頭部姿態估計
glMatrixMode(GL_MODELVIEW);
glLoadMatrixd(pose_matrix);
其中姿態矩陣是OpenGL ModelView矩陣由旋轉矩陣和頭部的平移向量構成。
現在我正在試圖爲2個校準相機做到這一點。當第一臺相機失去了一張臉的軌跡,但第二臺相機估計了頭部姿勢時,我顯示了相對於第二張的旋轉和平移,反之亦然。我想顯示一個OpenGl對象並將其移動到兩種情況。爲此我需要將姿態矩陣轉移到公共座標系中。
我知道兩臺攝像機相對於彼此的相對幾何關係。我假設其中一個攝像頭是世界座標系,我通過將第二個攝像頭的姿態矩陣和校準矩陣相對於第一個攝像頭相乘,將第二個攝像頭的頭部姿態矩陣轉移到第一個攝像頭的幀。當我將這個乘法矩陣加載到OpenGL ModelView矩陣中時,我得到錯誤的結果。當第一個攝像頭捕捉到物體時,物體正在向右移動,但第二個攝像機物體被平移和旋轉,與第一個攝像機不在同一個地方。
可能是什麼問題?也許OpenGL的顯示部分是錯誤的或?