2013-10-01 5 views
0

У меня возникла проблема с интерпретацией данных калибровки камеры, найденных по адресу 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-изображения.

Я был бы очень признателен, если бы кто-нибудь мог дать представление о том, как правильно применять работу.

Спасибо,

ответ

0

Я думаю, что нет ничего плохого в ваших расчетах. Если вы получаете проекции, выходящие за границы изображения, это означает, что камера не может видеть эту точку.

Я сделал несколько графиков для положения камеры из данных на веб-странице, которую вы упомянули. (X, Y, Z), являются осями мировой системы отсчета и (х, у, г) оси для эталонной камеры кадра.

Для первого примера на приведенной ниже веб-странице приведено следующее, для чего они выполняют проекцию точки (0,0,0) для получения (244, 253,8). Обратите внимание на ориентацию оси г: камера смотрит в сторону начала координат мирового отсчета:

enter image description here

для набора данных 2, камера 2, обратите внимание на ориентацию оси г: камеру не может видеть происхождение мировой системы отсчета:

enter image description here

ли эта ориентация имеет смысл или нет, зависит от приложения и выбора (X, Y, Z) системе отсчета. Камера 1 для набора данных 2 ориентирована аналогичным образом.