Есть ли хорошие библиотеки C или C++ для работы с большими облаками точек?

По сути, я ищу библиотеку или SDK для обработки больших облаков точек, поступающих от LIDAR или сканеров, обычно встречающихся во многих миллионах точек X,Y,Z,Color. Что я после того, как следующие;

Быстрое отображение, масштабирование, панорамирование Регистрация облака точек Быстрый низкоуровневый доступ к данным Регрессия поверхностей и твердых тел (не так важна, как другие)

Хотя я не возражаю платить за разумную коммерческую библиотеку, меня не интересует очень дорогая библиотека (например, свыше 5 тыс. Долл.) Или библиотека с ценой лицензии для пользователя на время выполнения. С открытым исходным кодом также было бы хорошо. Я нашел несколько возможностей через Google, но все они, как правило, слишком дороги для моего бюджета.

5 ответов

Решение

Я второй вызов R, который я все время взаимодействую с C++ (используя, например, пакеты Rcpp и RInside).

R предпочитает все данные в памяти, поэтому вы, вероятно, захотите использовать 64-битную ОС и приличный объем оперативной памяти для большого количества данных. В представлении задач по высокопроизводительным вычислениям с использованием R есть несколько указателей по работе с большими данными.

Наконец, для быстрой визуализации шестнадцатеричный код отлично подходит для визуального суммирования больших наборов данных. Для увеличения и пр. Попробуйте пакет rgl.

Check Point Cloud Library (PCL). Это довольно полный набор инструментов для обработки и управления облаками точек. Он также предоставляет инструменты для визуализации облаков точек: pcl::visualization::CloudViewer который использует библиотеку VTK и wxWidgets

С 2011 года был разработан инструментарий для преобразования точек (чтение / запись) и управления ими: PDAL - библиотека абстракции точечных данных

Почему бы вам не взглянуть на язык программирования R, который может напрямую ссылаться на код C, тем самым образуя мост. R был разработан с учетом статистического кода, но может очень легко помочь не только обрабатывать большие наборы данных, но и визуализировать их. Есть довольно много атмосферных ученых, которые используют R в своей работе. Я знаю, я работаю с ними именно для того, что вы пытаетесь сделать. Думайте о R как о Matlab или IDL бедного человека (но скоро не будет.)

В духе ответов R, ROOT также обеспечивает хорошую основу для такого рода вещей.

Возможные полезные функции:

  • Кодовая база C++ и интерпретатор Cint C++ в качестве рабочей оболочки. Python привязка.
  • Может отображать три тусклых облака точек
  • Набор классов геометрии (хотя я не верю, что они поддерживают все необходимые вам операции)
  • Разработано физиками-атомщиками и физиками вместо физиков:p

Vortex от Pointools может набрать гораздо больше очков, чем миллионы, которые вы просите:

http://www.pointools.com/vortex_intro.php

Он может обрабатывать файлы размером в несколько гигабайт, содержащие миллиарды точек на скромном оборудовании.

Другие вопросы по тегам