Вычисление 3D матрицы вращения для матрицы камеры

#matlab #3d #camera #computer-vision #rotation

#matlab #3D #камера #компьютерное зрение #вращение

Вопрос:

Я пытаюсь вычислить матрицу камеры K[R|t] для набора многовидовых изображений, которые я создаю из Blender с помощью подключаемого модуля. Плагин генерирует следующую информацию:

 center_camera_x_m = -4.33945369720459
center_camera_y_m = -5.657132148742676
center_camera_z_m = 1.7091176509857178
center_camera_rx_rad = 1.4758878946304321
center_camera_ry_rad = -4.157481825473042e-08
center_camera_rz_rad = -0.6149072647094727
  

Я хочу сгенерировать R-матрицу, но мне трудно понять эту концепцию. Я знаю, что R — это матрица 3×3. Я вычисляю Rx, Ry, Rz следующим образом:

 R1 = [1 0 0; 0 cos(center_camera_rx_rad) -sin(center_camera_rx_rad) ; 0 sin(center_camera_rx_rad) cos(center_camera_rx_rad)] ;
R2 = [cos(center_camera_ry_rad) 0 sin(center_camera_ry_rad) ; 0 1 0 ; -sin(center_camera_ry_rad) 0  cos(center_camera_ry_rad)] ;
R3 = [cos(center_camera_rz_rad) -sin(center_camera_rz_rad) 0 ; sin(center_camera_rz_rad) cos(center_camera_rz_rad) 0 ; 0 0 1] ;
  

Затем я сгенерировал окончательную матрицу R для использования в матрице камеры следующим образом:

 R = R3*R2*R1
  

Есть ли способ проверить решение? и если решение правильное, может ли кто-нибудь упростить, почему оно вычисляется таким образом?

Комментарии:

1. это матрицы вращения. По этой теме есть подполе алгебры, слишком широкое, чтобы просто ответить здесь. en.wikipedia.org/wiki/Rotation_matrix