У вас есть коллекция из N облаков точек, представляющих один и тот же объект, возможно, все в другом пространстве (заданном матрицей преобразования), и вы хотите объединить их только в одно облако точек.Это правильно?
Я могу упустить момент, потому что единственный метод, который я могу придумать, довольно прост.Так что поправьте меня, если я ошибаюсь.
Поместите все облака точек в одно пространство.Теперь все ваши точки находятся в одном пространстве, и объединение ваших преобразованных облаков точек является тривиальным.
Возможно, вы захотите удалить дубликаты точек, поскольку они могут раздражать алгоритмы, использующие окрестности.Для этого вы можете использовать дерево kdt и выполнить поиск по радиусу вокруг каждой точки с очень маленьким радиусом для обнаружения кластеров: оставьте только одну точку для каждого найденного кластера.С разрешением сканирования вы могли бы догадаться, каково типичное расстояние d
между двумя соседними точками.В противном случае вы можете оценить его, рассчитав среднее расстояние между точкой и ее ближайшей / второй ближайшей точкой для каждого преобразованного облака точек.Теперь «маленький радиус» - это небольшая часть этого типичного расстояния d
.