Реконструировать 3D-точку из нескольких 2D-точек? - PullRequest
5 голосов
/ 10 февраля 2012

OpenCV содержит много поддержки для 3D-реконструкции со стереокамер.В моем случае у меня есть шесть откалиброванных камер (внутренних и внешних), и я хотел бы взять общие 2D-точки (скажем, тестовой сферы) и получить соответствующую 3D-позицию.Есть мысли о том, как это сделать?

Что у меня есть:
1) Параметры калибровки для нескольких камер
2) Положение 2D тестовой сферы (в каждой плоскости изображения)

Что я хочу получить:
1) Соответствующая 3D точка тестовой сферы

Ответы [ 2 ]

3 голосов
/ 10 февраля 2012

Ваши параметры калибровки дадут вам луч для каждой 2D-точки для каждой камеры. Если вы уже определили, какие лучи соответствуют вашей тестовой сфере, вы хотите сделать наименьших квадратов , подходящих для вашей целевой точки. (Хотя ссылка использует наименьшие квадраты для линейной регрессии, вы можете использовать те же методы, чтобы найти точку 3D, минимизируя сумму квадратов ошибок всех точек 2D.)

1 голос
/ 10 февраля 2012

Знаете ли вы отношения положения между камерами?

Тогда каждое изображение дает вам горизонтальный и вертикальный угол - от матрицы камеры и эпиполярной модели.Это дает вам одну прямую линию в пространстве для каждой камеры - просто найдите точку, где все они пересекаются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...