Процесс выглядит следующим образом. Рассмотрим трехмерную точку X, представленную в однородных координатах вектором столбца [x1, x2, x3, 1] '(где я использую простой символ «'», чтобы указать транспонирование). Рассмотрим тогда двумерную точку u = [u1, u2, 1] ', которая является образом X в (перспективной) камере. Затем проекция камеры изображается матрицей Р проекции 3х, такой как
u = P * X.
, где "*" означает, что строка-за-колонке продукта: u1 = Р11 * x1 + P12 * х2 + P13 * х3 + P14 и т.д.
Матрица Р может быть разложен в произведение двух матриц:
Р = к * Q
где к 3х3 верхней диагональной матрицы
K = [ fx s cx
0 fy cy
0 0 1 ]
, что представляет собой камеру, и Q представляет собой матрицу 3х4
Q = [R | t]
где R - матрица вращения 3x3 камеры, а t - вектор трансляции 3x1.
Если вы получили матрицу проекта P, процедура восстановления K, R и т следующим образом:
- вычислит «RQ decomposition» Р
- Извлечение R из Q (почитайте его левые 3 столбца)
Какая ротация, это матрица перспективы? –
Перспективная матрица - это проекция. Он не включает вращения, они хранятся в матрице просмотра модели. –