2013-11-16 4 views
1

Я занимаюсь структурой из нескольких изображений с использованием OpenCV. У меня есть 8 изображений, и я создал 3D-облака точек для каждой пары изображений (img1 & 2, img2 & 3, img3 & 4 и т. Д.). Я знаю, что каждое отдельное облако 3D-точек правильное, потому что они выглядят хорошо, когда отображаются в VTK/OpenGL.OpenCV: преобразовать точки облаков в самую левую систему координат камеры

Мои камеры калибруются, используя метаданные EXIF ​​для фокусного расстояния и центра изображения в качестве основной точки.

Как преобразовать каждое из этих трехмерных точечных облаков в трехмерную систему координат самой левой камеры?

ответ

0

Я предполагаю, что у вас есть облака точек, хранящиеся в формате, совместимом с PCL; то вы можете просто использовать pcl::transformPointCloud .. Если нет, то вам нужно будет реализовать свой собственный на основе исходного кода приведены в transforms.hpp ..

HTH

EDIT:

Пожалуйста, обратитесь к слайдам 16- 19 в this presentation. Модель преобразования,

P_c = R_c (P_w - C)

Это математическая форма преобразования данного в моей предыдущей ссылке.

+0

Мои точки хранятся в текстовом файле с координатами x, y, z для одной точки на каждой строке. – bard

+0

Если у них есть координаты x, y и z, вы можете применить к ним эту функцию (вам даже не нужно создавать PCL, просто используйте реализацию в своей собственной функции). – scap3y

+0

Я использую привязки Python от OpenCV, хотя , так будет ли это возможно? Мне кажется, мне пришлось бы перевести исходный код на Python. – bard

Смежные вопросы