Как объединить два облака точек с разными точками зрения - PullRequest
6 голосов
/ 16 сентября 2011

Мой 3D-сканер сканирует некоторые объекты под разными углами, чтобы в конце получить реконструкцию поверхности на 360 °.Облака точек каждого сканирования имеют различное количество точек и должны быть объединены.В библиотеке PCL, которую я хотел бы использовать для реконструкции, есть алгоритмы объединения облаков точек с одинаковым количеством точек с использованием некоторого итеративного метода ближайших точек.

Хотелось бы избежать выяснения оси вращения.Конечно, зная его положение и угол поворота, я мог бы просто умножить все свои точки одного облака на матрицу вращения и затем объединить облака.Есть ли способ объединить их, не зная центра вращения?(А может, даже вывести свою позицию из алгоритма?)

Ответы [ 2 ]

2 голосов
/ 03 июля 2013

Ну, это кажется старым вопросом, просто может помочь другим людям :) Не будет смысла объединять облака точек без регистрации. Таким образом, ICP следует использовать. Затем вы можете выполнить преобразование в соответствующее Облако точек и объединить их после этого. Должно быть прямо вперед.

1 голос
/ 05 ноября 2014

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

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

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

...