Есть ли хорошие библиотеки 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
Он может обрабатывать файлы размером в несколько гигабайт, содержащие миллиарды точек на скромном оборудовании.