Как сравнить данные 1 облака точек с данными 1 или более облаков точек?

Я хочу сравнить данные облака точек (файл .pcd, .ply) с одним или несколькими данными облака точек и получить аналогичные точки или исправления. Итак, я хочу знать, какой метод или алгоритм следует использовать?


person Navaneet    schedule 26.04.2015    source источник
comment
Ваш вопрос слишком общий. Какую реальную проблему вы пытаетесь решить? Что вы будете использовать similar points and patches после того, как определите их?   -  person seva titov    schedule 26.04.2015
comment
Например. Вы хотите сделать распознавание объектов?   -  person D.J.Duff    schedule 27.04.2015
comment
Попробуйте CloudCompare (danielgm.net/cc). Возможно, это подходящий инструмент для решения вашей задачи.   -  person datjko    schedule 28.04.2015
comment
большое спасибо. Я работаю над заполнением данных облака точек с помощью примера. поэтому на самом деле хотите сравнить облака точек, получить совпадающие и использовать их для интерполяции в отверстии. я попробовал корреспонденцию_группировку, но получаю ошибки, поскольку файлы .h (boost.h, pcl\recognition\cg\correspondence_grouping.h, pcl\recognition\impl\correspondence_grouping.h) отсутствуют. я искал их в pcl 1.6.0, они отсутствовали, я пытался найти их в github, некоторые были, а другие не были (boost.h). в чем проблема.???   -  person Navaneet    schedule 28.04.2015


Ответы (1)


Что вы хотите сделать, это:

  1. Обнаружение характерных точек. Найдите точки на поверхности облака точек, которые имеют уникальное и описательное соседство.

  2. Оценка признаков: для этих точек и их соседей (обычно в сферическом радиусе R) вычисляется дескриптор. Это может быть гистограмма, простое значение или многомерный вектор. Зависит от дескриптора, который вы используете.

  3. Найти соответствия. Теперь для обоих облаков точек сравните эти дескрипторы и найдите совпадающие (это соответствия) и попытайтесь найти эти соответствия таким образом, чтобы одно облако точек соответствовало другому. Отклонить корреспонденции, которые не совпадают.

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

Я бы предложил использовать библиотеку облаков точек (PCL). Здесь есть неплохой мастер-класс:

http://pointclouds.org/documentation/tutorials/correspondence_grouping.php#correspondence-grouping

Также здесь есть обзор алгоритмов функций (хотя и не полный):

https://github.com/PointCloudLibrary/pcl/wiki/Обзорисравнениефункций

person Fred    schedule 27.04.2015
comment
большое спасибо. Я работаю над заполнением данных облака точек с помощью примера. поэтому на самом деле хотите сравнить облака точек, получить совпадающие и использовать их для интерполяции в отверстии. я попробовал корреспонденцию_группировку, но получаю ошибки, поскольку файлы .h (boost.h, pcl\recognition\cg\correspondence_grouping.h, pcl\recognition\impl\correspondence_grouping.h) отсутствуют. я искал их в pcl 1.6.0, они отсутствовали, я пытался найти их в github, некоторые из них были, а другие не были (boost.h). в чем проблема.??? - person Navaneet; 28.04.2015
comment
Старайтесь не использовать все в одном установщике. Соберите PCL из репозитория (github.com/PointCloudLibrary/pcl). На их странице есть руководства по сборке PCL из исходного кода (например, для Windows: pointclouds.org/documentation/tutorials/) - person Fred; 28.04.2015