Как создать облако точек? - PullRequest
12 голосов
/ 09 ноября 2010

alt text Используя вышеприведенную настройку, у меня есть грубые уравнения лазерных линий с обеих сторон плоскости. Я даже отфильтровал пиксельные точки на объекте. У меня также есть внешние параметры моей камеры, взятые из рисунков шахматной доски, которые я положил с обеих сторон плоскости (так что я знаю {R1, T1} и {R2, T2})

Теперь я хочу создать облако точек объекта. Я вижу, что мне нужно пересечь плоскость лазера (Elaser) с лучом обзора (r) из камеры, чтобы получить одну трехмерную точку (p), какие-либо подсказки, как мне это сделать?


UPDATE:

Это то, что я должен сделать, кто-то может поправить меня, если я ошибаюсь

STEP1: Преобразовать все точки из системы координат (левая плоскость) в систему координат (правая плоскость), чтобы получить единичные {R, T} из {R1, T1} и {R2, T2}

STEP2: Найти уравнение лазерной плоскости, используя 2 лазерные точки в левой плоскости и 1 лазерную точку в правой плоскости, используя одну и ту же систему координат (преобразовано в STEP1)

STEP3: Найти трехмерную точку на объекте, используя уравнение плоскости лазера и 2D точку на объекте


UPDATE

Это то, что у меня сейчас есть -

alt text

Ответы [ 2 ]

6 голосов
/ 09 ноября 2010

Если я не ошибаюсь (я никогда не имел дело со структурированным светом), вам необходимо: i) восстановить эпиполярное ограничение между камерой и лазером, ii) определить эпиполярную линию для каждой точки на изображенной лазерной полосе,iii) пересечь эту линию с известным положением лазерной полосы в лазерных координатах и ​​iv) восстановить трехмерную информацию с помощью триангуляции.

Для получения наилучших результатов следует ориентировать лазерную полосу перпендикулярно вектору переносакамеры и лазера, потому что таким образом пересечение в iii) выше хорошо обусловлено и, следовательно, наиболее уверенно восстанавливается при наличии шума.

0 голосов
/ 12 июля 2011

Все в сообщении ssegvic верно, но это легче сказать, чем сделать. Подобно калибровке стереокамеры, вам необходимо выполнить калибровку между лазером и камерой. Это делается на практике, выполняя измерения на объекте с известной геометрией относительно плоскости отсчета, а затем решая проблему отображения координат изображения на координаты объекта. После выполнения этой калибровки вы можете определить глубину, используя полученную калибровочную матрицу.

Существует множество возможных калибровочных объектов, которые вы можете использовать. Я использовал черную плоскость с тонкими белыми линиями, перпендикулярными плоскости вашего лазера. Это даст вам несколько точек на изображении, которые вы можете выделить с помощью обработки изображения. После того, как вы собрали все нужные вам точки, переведите положение устройства лазерной камеры. Затем вы можете перевести в определенном направлении (к камере?), Отслеживая изменение глубины плоскости, поскольку они представляют собой координаты реального мира, на которые вам нужно наложить карту из координат изображения. Вам следует выполнить калибровку по глубине или рабочему диапазону объекта, который вы планируете измерять (избегайте экстраполяции), с разумными приращениями по вашему выбору.

...