Алгоритм восстановления поверхности Пуассона. Подробнее...
#include <pcl/surface/poisson.h>
Открытые типы | |
| using | Ptr = shared_ptr< Poisson< PointNT > > |
| using | ConstPtr = shared_ptr< const Poisson< PointNT > > |
| using | PointCloudPtr = typename pcl::PointCloud< PointNT >::Ptr |
| using | KdTree = pcl::KdTree< PointNT > |
| using | KdTreePtr = typename KdTree::Ptr |
|
| |
| using | Ptr = shared_ptr< SurfaceReconstruction< PointNT > > |
| using | ConstPtr = shared_ptr< const SurfaceReconstruction< PointNT > > |
|
| |
| using | Ptr = shared_ptr< PCLSurfaceBase< PointInT > > |
| using | ConstPtr = shared_ptr< const PCLSurfaceBase< PointInT > > |
| using | KdTree = pcl::search::Search< PointInT > |
| using | KdTreePtr = typename KdTree::Ptr |
|
| |
| using | PointCloud = pcl::PointCloud< PointInT > |
| using | PointCloudPtr = typename PointCloud::Ptr |
| using | PointCloudConstPtr = typename PointCloud::ConstPtr |
| using | PointIndicesPtr = PointIndices::Ptr |
| using | PointIndicesConstPtr = PointIndices::ConstPtr |
Общедоступные функции-члены | |
| Poisson () | |
| Конструктор, задающий всем параметрам рабочие значения по умолчанию. Подробнее... |
|
| ~Poisson () override | |
| Деструктор. Подробнее... |
|
| void | performReconstruction (pcl::PolygonMesh &output) override |
| Создать поверхность. Подробнее... |
|
| void | performReconstruction (pcl::PointCloud< PointNT > &points, std::vector< pcl::Vertices > &polygons) override |
| Создать поверхность. Подробнее... |
|
| void | setDepth (int depth) |
| Задать максимальную глубину дерева, используемого для реконструкции поверхности. Подробнее... |
|
| int | getDepth () |
| Получить параметр глубины. Подробнее... |
|
| void | setMinDepth (int min_depth) |
| int | getMinDepth () |
| void | setPointWeight (float point_weight) |
| float | getPointWeight () |
| void | setScale (float scale) |
| Задать отношение диаметра куба, используемого для реконструкции, к диаметру ограничивающего куба выборки. Подробнее... |
|
| float | getScale () |
| Получить отношение диаметра куба, используемого для реконструкции, к диаметру ограничивающего куба выборки. Подробнее... |
|
| void | setSolverDivide (int solver_divide) |
| Задать глубину, на которой для решения уравнения Лапласа используется блочный решатель Гаусса — Зейделя. Подробнее... |
|
| int | getSolverDivide () |
| Получить глубину, на которой для решения уравнения Лапласа используется блочный решатель Гаусса — Зейделя. Подробнее... |
|
| void | setIsoDivide (int iso_divide) |
| Задать глубину, на которой для извлечения изоповерхности следует использовать блочный экстрактор изоповерхности. Подробнее... |
|
| int | getIsoDivide () |
| Получить глубину, на которой для извлечения изоповерхности следует использовать блочный экстрактор изоповерхности. Подробнее... |
|
| void | setSamplesPerNode (float samples_per_node) |
| Задать минимальное число точек выборки, которые должны находиться в узле октодере; при построении октодере учитывается плотность выборки. Подробнее... |
|
| float | getSamplesPerNode () |
| Получить минимальное число точек выборки, которые должны находиться в узле октодере; при построении октодере учитывается плотность выборки. Подробнее... |
|
| void | setConfidence (bool confidence) |
| Задать флаг доверия. Подробнее... |
|
| bool | getConfidence () |
| Получить флаг доверия. Подробнее... |
|
| void | setOutputPolygons (bool output_polygons) |
| Включение этого флага указывает алгоритму реконструкции выводить полигональную сетку (вместо триангуляции результатов алгоритма Marching Cubes). Подробнее... |
|
| bool | getOutputPolygons () |
| Проверить, выводит ли алгоритм полигональную или треугольную сетку. Подробнее... |
|
| void | setDegree (int degree) |
| Задать параметр степени. Подробнее... |
|
| int | getDegree () |
| Получить параметр степени. Подробнее... |
|
| void | setManifold (bool manifold) |
| Задать флаг многообразия. Подробнее... |
|
| bool | getManifold () |
| Получить флаг многообразия. Подробнее... |
|
| void | setThreads (int threads) |
| Задать количество используемых потоков. Подробнее... |
|
| int | getThreads () |
| Получить количество потоков. Подробнее... |
|
|
| |
| SurfaceReconstruction ()=default | |
| Конструктор. Подробнее... |
|
| ~SurfaceReconstruction () override=default | |
| Деструктор. Подробнее... |
|
| void | reconstruct (pcl::PolygonMesh &output) override |
| Базовый метод реконструкции поверхности для всех точек, заданных в <setInputCloud (), setIndices ()> Подробнее... |
|
| virtual void | reconstruct (pcl::PointCloud< PointNT > &points, std::vector< pcl::Vertices > &polygons) |
| Базовый метод реконструкции поверхности для всех точек, заданных в <setInputCloud (), setIndices ()> Подробнее... |
|
|
| |
| PCLSurfaceBase () | |
| Конструктор без параметров. Подробнее... |
|
| ~PCLSurfaceBase () override=default | |
| Деструктор без действий. Подробнее... |
|
| void | setSearchMethod (const KdTreePtr &tree) |
| Задать необязательный указатель на объект поиска. Подробнее... |
|
| KdTreePtr | getSearchMethod () |
| Получить указатель на используемый метод поиска. Подробнее... |
|
|
| |
| PCLBase () | |
| Конструктор без параметров. Подробнее... |
|
| PCLBase (const PCLBase &base) | |
| Конструктор копирования. Подробнее... |
|
| virtual | ~PCLBase ()=default |
| Деструктор. Подробнее... |
|
| virtual void | setInputCloud (const PointCloudConstPtr &cloud) |
| Передать указатель на входной набор данных. Подробнее... |
|
| PointCloudConstPtr const | getInputCloud () const |
| Получить указатель на входной набор данных облака точек. Подробнее... |
|
| virtual void | setIndices (const IndicesPtr &indices) |
| Передать указатель на вектор индексов, представляющий входные данные. Подробнее... |
|
| virtual void | setIndices (const IndicesConstPtr &indices) |
| Передать указатель на вектор индексов, представляющий входные данные. Подробнее... |
|
| virtual void | setIndices (const PointIndicesConstPtr &indices) |
| Передать указатель на вектор индексов, представляющий входные данные. Подробнее... |
|
| virtual void | setIndices (std::size_t row_start, std::size_t col_start, std::size_t nb_rows, std::size_t nb_cols) |
| Задать индексы точек, расположенных в интересующей области облака точек. Подробнее... |
|
| IndicesPtr | getIndices () |
| Получить указатель на используемый вектор индексов. Подробнее... |
|
| IndicesConstPtr const | getIndices () const |
| Получить указатель на используемый вектор индексов. Подробнее... |
|
| const PointInT & | operator[] (std::size_t pos) const |
| Переопределяет operator[] класса PointCloud для сокращения кода. Подробнее... |
|
Защищённые функции-члены | |
| std::string | getClassName () const override |
| Метод получения имени класса. Подробнее... |
|
|
| |
| bool | initCompute () |
| Этот метод следует вызывать перед началом фактических вычислений. Подробнее... |
|
| bool | deinitCompute () |
| Этот метод следует вызывать после завершения фактических вычислений. Подробнее... |
|
Дополнительные унаследованные члены | |
|
| |
| bool | check_tree_ |
| Флаг, указывающий, требуется ли алгоритму реконструкции производного класса объект поиска tree. Подробнее... |
|
|
| |
| KdTreePtr | tree_ |
| Указатель на объект пространственного поиска. Подробнее... |
|
|
| |
| PointCloudConstPtr | input_ |
| Входной набор облака точек. Подробнее... |
|
| IndicesPtr | indices_ |
| Указатель на вектор используемых индексов точек. Подробнее... |
|
| bool | use_indices_ |
| Установите значение true, если используются индексы точек. Подробнее... |
|
| bool | fake_indices_ |
| Если набор индексов не задан, создаётся набор фиктивных индексов, соответствующий входному PointCloud. Подробнее... |
|
Подробное описание
template<typename PointNT>
class pcl::Poisson< PointNT >
Алгоритм реконструкции поверхности Пуассона Poisson.
- Примечание
- Код адаптирован из Misha Kazhdan: http://www.cs.jhu.edu/~misha/Code/PoissonRecon/
- Основано на статье:
- Michael Kazhdan, Matthew Bolitho, Hugues Hoppe, «Poisson surface reconstruction», материалы четвёртого симпозиума Eurographics по обработке геометрии, SGP '06
Документация псевдонимов типов-членов
ConstPtr
| using pcl::Poisson< PointNT >::ConstPtr = shared_ptr<const Poisson<PointNT> > |
KdTree
| using pcl::Poisson< PointNT >::KdTree = pcl::KdTree<PointNT> |
KdTreePtr
| using pcl::Poisson< PointNT >::KdTreePtr = typename KdTree::Ptr |
PointCloudPtr
| using pcl::Poisson< PointNT >::PointCloudPtr = typename pcl::PointCloud<PointNT>::Ptr |
Ptr
| using pcl::Poisson< PointNT >::Ptr = shared_ptr<Poisson<PointNT> > |
Документация конструкторов и деструкторов
Poisson()
| default |
Конструктор задаёт всем параметрам рабочие значения по умолчанию.
~Poisson()
Документация функций-членов
getClassName()
| inlineoverrideprotectedvirtual |
Метод получения имени класса.
Переопределён из pcl::PCLSurfaceBase< PointInT >.
getConfidence()
|
getDegree()
|
getDepth()
|
getIsoDivide()
|
getManifold()
|
getMinDepth()
|
getOutputPolygons()
|
getPointWeight()
|
getSamplesPerNode()
|
getScale()
|
getSolverDivide()
|
getThreads()
|
performReconstruction() [1/2]
| overridevirtual |
Создать поверхность.
- Параметры
-
[out] points положения вершин результирующей сетки [out] polygons связность результирующей сетки
Реализует pcl::SurfaceReconstruction< PointNT >.
Определение в строке 222 файла poisson.hpp.
Ссылки: pcl::poisson::Point3D< Real >::coords, pcl::poisson::CoredMeshData::inCorePoints, pcl::poisson::CoredVectorMeshData::nextOutOfCorePoint(), pcl::poisson::CoredVectorMeshData::nextPolygon(), pcl::poisson::CoredVectorMeshData::outOfCorePointCount(), pcl::poisson::CoredVectorMeshData::polygonCount(), pcl::PointCloud< PointT >::resize() и pcl::Vertices::vertices.
performReconstruction() [2/2]
| overridevirtual |
Создать поверхность.
- Параметры
-
[out] output результирующая полигональная сетка
Реализует pcl::SurfaceReconstruction< PointNT >.
Определение в строке 142 файла poisson.hpp.
Ссылки: pcl::PolygonMesh::cloud, pcl::poisson::Point3D< Real >::coords, pcl::poisson::CoredMeshData::inCorePoints, pcl::poisson::CoredVectorMeshData::nextOutOfCorePoint(), pcl::poisson::CoredVectorMeshData::nextPolygon(), pcl::poisson::CoredVectorMeshData::outOfCorePointCount(), pcl::poisson::CoredVectorMeshData::polygonCount(), pcl::PolygonMesh::polygons, pcl::PointCloud< PointT >::resize(), pcl::toPCLPointCloud2() и pcl::Vertices::vertices.
setConfidence()
| inline |
Установить флаг достоверности.
- Примечание
- Включение этого флага указывает алгоритму реконструкции использовать величину нормалей в качестве информации о достоверности. Если флаг не включён, перед реконструкцией все нормали нормализуются до единичной длины.
- Параметры
-
[in] confidence заданный флаг
setDegree()
| inline |
setDepth()
| inline |
Установить максимальную глубину дерева, используемого для реконструкции поверхности.
- Примечание
- Глубина d соответствует решению на воксельной сетке, разрешение которой не превышает 2^d x 2^d x 2^d. Обратите внимание, что, поскольку алгоритм реконструкции адаптирует октодерево к плотности выборки, заданная глубина реконструкции является лишь верхней границей.
- Параметры
-
[in] depth параметр глубины
setIsoDivide()
|
Установить глубину, на которой для извлечения изоповерхности следует использовать блочный экстрактор изоповерхности.
- Примечание
- Этот параметр позволяет снизить накладные расходы памяти ценой небольшого увеличения времени извлечения. (На практике мы обнаружили, что для реконструкции глубины 9 и выше глубина подразделения 7 или 8 может значительно снизить потребление памяти.)
- Параметры
-
[in] iso_divide заданное значение параметра
setManifold()
| inline |
setMinDepth()
| inline |
setOutputPolygons()
| inline |
setPointWeight()
|
setSamplesPerNode()
|
Установить минимальное число выборочных точек, которые должны находиться внутри узла октодерева при адаптации его построения к плотности выборки.
- Примечание
- Для выборок без шума можно использовать небольшие значения в диапазоне [1.0 - 5.0]. Для более зашумлённых выборок могут потребоваться большие значения в диапазоне [15.0 - 20.0], чтобы получить более гладкую реконструкцию с уменьшенным уровнем шума.
- Параметры
-
[in] samples_per_node заданное значение параметра
setScale()
|
setSolverDivide()
|
Установить глубину, на которой для решения уравнения Лапласа используется блочный метод Гаусса — Зейделя.
- Примечание
- Этот параметр позволяет снизить накладные расходы памяти ценой небольшого увеличения времени реконструкции. (На практике мы обнаружили, что для реконструкции глубины 9 и выше глубина подразделения 7 или 8 может значительно снизить потребление памяти.)
- Параметры
-
[in] solver_divide заданное значение параметра
setThreads()
| void pcl::Poisson< PointNT >::setThreads | ( | int | threads | ) |
Установить число используемых потоков.
- Параметры
-
[in] threads число потоков
Определение в строке 71 файла poisson.hpp.
Документация этого класса создана на основе следующих файлов:
- pcl/surface/poisson.h
- pcl/surface/impl/poisson.hpp
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_poisson.html