У меня возникла проблема с интерпретацией данных калибровки камеры, найденных по адресу http://www.cvg.reading.ac.uk/PETS2001/pets2001-cameracalib.html#dataset2 , и задавался вопросом, может ли кто-нибудь помочь. В основном я понял пример, и я правильно его работаю, когда пытаюсь вычислить 2D-координаты изображений трехмерных объектов. 2D-координаты, которые я получаю, находятся в границах изображения, что хорошо.Интерпретация матрицы калибровки камеры
Проблема в том, что я пытаюсь применить работу к другим матрицам. Для того, чтобы получить Вас в перспективе, эти калибровки матрицы применяются к видео, найденных в
Для примера рассмотрим матрицу трансформации Dataset 2 камеры 2:
FocalLength f=792
ImageCentre (u,v) = (384, 288)
Homogeneous Transform T =
-0.94194 0.33537 -0.01657 0.00000;
-0.33152 -0.93668 -0.11278 0.00000;
-0.05334 -0.10073 0.99348 0.00000;
11791.10000 22920.20000 6642.89000 1.00000;
Согласно инструкциям в верхней части набора данных, то первый шаг, чтобы инвертировать матрицу, чтобы получить:
-0.94194 -0.33152 -0.05334 0;
0.33538 -0.93669 -0.10074 0;
-0.01657 -0.11277 0.99348 0;
3529.67074 26127.15587 -3661.65672 1;
Затем возьмите, например, точку х = (0,0,0) в мировых координатах.
xT = (3529.67074,26127.15587,-3661.65672) and the point in 2D coordinates is given by
(792 x 3529.67074/-3661.65672 + 384, 792 x 26127.15587/-3661.65672 + 288)
= (-763.45 + 384 , -5651.187 + 288)
= (-379.45, -5363.187)
Теперь этот ответ явно неверен, поскольку ответ должен находиться в границах изображения. Фактически, когда я пытался использовать эту информацию в своей программе, точки на плоскости земли в 3D-мире неправильно преобразуются в координаты 2D-изображения.
Я был бы очень признателен, если бы кто-нибудь мог дать представление о том, как правильно применять работу.
Спасибо,