Spec-Zone.ru › PointCloudLibrary

Алгоритм восстановления поверхности Пуассона. Подробнее...

#include <pcl/surface/poisson.h>

Inheritance graph
[легенда]
Collaboration graph
[легенда]

Открытые типы

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
- Открытые типы, унаследованные от pcl::SurfaceReconstruction< PointNT >
using Ptr = shared_ptr< SurfaceReconstruction< PointNT > >
using ConstPtr = shared_ptr< const SurfaceReconstruction< PointNT > >
- Открытые типы, унаследованные от pcl::PCLSurfaceBase< PointInT >
using Ptr = shared_ptr< PCLSurfaceBase< PointInT > >
using ConstPtr = shared_ptr< const PCLSurfaceBase< PointInT > >
using KdTree = pcl::search::Search< PointInT >
using KdTreePtr = typename KdTree::Ptr
- Открытые типы, унаследованные от pcl::PCLBase< PointInT >
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 ()
Получить количество потоков. Подробнее...
- Общедоступные функции-члены, унаследованные от pcl::SurfaceReconstruction< PointNT >
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 ()> Подробнее...
- Общедоступные функции-члены, унаследованные от pcl::PCLSurfaceBase< PointInT >
PCLSurfaceBase ()
Конструктор без параметров. Подробнее...
~PCLSurfaceBase () override=default
Деструктор без действий. Подробнее...
void setSearchMethod (const KdTreePtr &tree)
Задать необязательный указатель на объект поиска. Подробнее...
KdTreePtr getSearchMethod ()
Получить указатель на используемый метод поиска. Подробнее...
- Общедоступные функции-члены, унаследованные от pcl::PCLBase< PointInT >
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
Метод получения имени класса. Подробнее...
- Защищённые функции-члены, унаследованные от pcl::PCLBase< PointInT >
bool initCompute ()
Этот метод следует вызывать перед началом фактических вычислений. Подробнее...
bool deinitCompute ()
Этот метод следует вызывать после завершения фактических вычислений. Подробнее...

Дополнительные унаследованные члены

- Защищённые атрибуты, унаследованные от pcl::SurfaceReconstruction< PointNT >
bool check_tree_
Флаг, указывающий, требуется ли алгоритму реконструкции производного класса объект поиска tree. Подробнее...
- Защищённые атрибуты, унаследованные от pcl::PCLSurfaceBase< PointInT >
KdTreePtr tree_
Указатель на объект пространственного поиска. Подробнее...
- Защищённые атрибуты, унаследованные от pcl::PCLBase< PointInT >
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
Автор
Alexandru-Eugen Ichim

Определение в строке 61 файла poisson.h.

Документация псевдонимов типов-членов

ConstPtr

template<typename PointNT >
using pcl::Poisson< PointNT >::ConstPtr = shared_ptr<const Poisson<PointNT> >

Определение в строке 65 файла poisson.h.

KdTree

template<typename PointNT >
using pcl::Poisson< PointNT >::KdTree = pcl::KdTree<PointNT>

Определение в строке 72 файла poisson.h.

KdTreePtr

template<typename PointNT >
using pcl::Poisson< PointNT >::KdTreePtr = typename KdTree::Ptr

Определение в строке 73 файла poisson.h.

PointCloudPtr

template<typename PointNT >
using pcl::Poisson< PointNT >::PointCloudPtr = typename pcl::PointCloud<PointNT>::Ptr

Определение в строке 70 файла poisson.h.

Ptr

template<typename PointNT >
using pcl::Poisson< PointNT >::Ptr = shared_ptr<Poisson<PointNT> >

Определение в строке 64 файла poisson.h.

Документация конструкторов и деструкторов

Poisson()

template<typename PointNT >
pcl::Poisson< PointNT >::Poisson ( )
default

Конструктор задаёт всем параметрам рабочие значения по умолчанию.

~Poisson()

template<typename PointNT >
pcl::Poisson< PointNT >::~Poisson ( )
overridedefault

Деструктор.

Документация функций-членов

getClassName()

template<typename PointNT >
std::string pcl::Poisson< PointNT >::getClassName ( ) const
inlineoverrideprotectedvirtual

Метод получения имени класса.

Переопределён из pcl::PCLSurfaceBase< PointInT >.

Определение в строке 236 файла poisson.h.

getConfidence()

template<typename PointNT >
bool pcl::Poisson< PointNT >::getConfidence ( )

Получить флаг достоверности.

Определение в строке 184 файла poisson.h.

getDegree()

template<typename PointNT >
int pcl::Poisson< PointNT >::getDegree ( )

Получить параметр степени.

Определение в строке 205 файла poisson.h.

getDepth()

template<typename PointNT >
int pcl::Poisson< PointNT >::getDepth ( )

Получить параметр глубины.

Определение в строке 106 файла poisson.h.

getIsoDivide()

template<typename PointNT >
int pcl::Poisson< PointNT >::getIsoDivide ( )

Получить глубину, на которой для извлечения изоповерхности следует использовать блочный экстрактор изоповерхности.

Определение в строке 157 файла poisson.h.

getManifold()

template<typename PointNT >
bool pcl::Poisson< PointNT >::getManifold ( )

Получить флаг многообразия.

Определение в строке 217 файла poisson.h.

getMinDepth()

template<typename PointNT >
int pcl::Poisson< PointNT >::getMinDepth ( )

Определение в строке 112 файла poisson.h.

getOutputPolygons()

template<typename PointNT >
bool pcl::Poisson< PointNT >::getOutputPolygons ( )

Получить информацию о том, выдаёт ли алгоритм полигональную или треугольную сетку.

Определение в строке 195 файла poisson.h.

getPointWeight()

template<typename PointNT >
float pcl::Poisson< PointNT >::getPointWeight ( )

Определение в строке 118 файла poisson.h.

getSamplesPerNode()

template<typename PointNT >
float pcl::Poisson< PointNT >::getSamplesPerNode ( )

Получить минимальное количество точек выборки, которые должны попадать в узел октодерева при адаптации его построения к плотности выборки.

Определение в строке 172 файла poisson.h.

getScale()

template<typename PointNT >
float pcl::Poisson< PointNT >::getScale ( )

Получить отношение диаметра куба, используемого для реконструкции, к диаметру ограничивающего куба точек выборки.

Определение в строке 131 файла poisson.h.

getSolverDivide()

template<typename PointNT >
int pcl::Poisson< PointNT >::getSolverDivide ( )

Получить глубину, на которой для решения уравнения Лапласа используется блочный метод Гаусса — Зейделя.

Определение в строке 144 файла poisson.h.

getThreads()

template<typename PointNT >
int pcl::Poisson< PointNT >::getThreads ( )

Получить количество потоков.

Определение в строке 228 файла poisson.h.

performReconstruction() [1/2]

template<typename PointNT >
void pcl::Poisson< PointNT >::performReconstruction ( pcl::PointCloud< PointNT > & points,
std::vector< pcl::Vertices > & polygons
)
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]

template<typename PointNT >
void pcl::Poisson< PointNT >::performReconstruction ( pcl::PolygonMesh & output )
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()

template<typename PointNT >
void pcl::Poisson< PointNT >::setConfidence ( bool confidence )
inline

Установить флаг достоверности.

Примечание
Включение этого флага указывает алгоритму реконструкции использовать величину нормалей в качестве информации о достоверности. Если флаг не включён, перед реконструкцией все нормали нормализуются до единичной длины.
Параметры
[in] confidence заданный флаг

Определение в строке 180 файла poisson.h.

setDegree()

template<typename PointNT >
void pcl::Poisson< PointNT >::setDegree ( int degree )
inline

Установить параметр степени.

Параметры
[in] degree заданная степень

Определение в строке 201 файла poisson.h.

setDepth()

template<typename PointNT >
void pcl::Poisson< PointNT >::setDepth ( int depth )
inline

Установить максимальную глубину дерева, используемого для реконструкции поверхности.

Примечание
Глубина d соответствует решению на воксельной сетке, разрешение которой не превышает 2^d x 2^d x 2^d. Обратите внимание, что, поскольку алгоритм реконструкции адаптирует октодерево к плотности выборки, заданная глубина реконструкции является лишь верхней границей.
Параметры
[in] depth параметр глубины

Определение в строке 102 файла poisson.h.

setIsoDivide()

template<typename PointNT >
void pcl::Poisson< PointNT >::setIsoDivide ( int iso_divide ) inline

Установить глубину, на которой для извлечения изоповерхности следует использовать блочный экстрактор изоповерхности.

Примечание
Этот параметр позволяет снизить накладные расходы памяти ценой небольшого увеличения времени извлечения. (На практике мы обнаружили, что для реконструкции глубины 9 и выше глубина подразделения 7 или 8 может значительно снизить потребление памяти.)
Параметры
[in] iso_divide заданное значение параметра

Определение в строке 153 файла poisson.h.

setManifold()

template<typename PointNT >
void pcl::Poisson< PointNT >::setManifold ( bool manifold )
inline

Установить флаг многообразия.

Примечание
Включение этого флага указывает алгоритму реконструкции добавлять барицентр полигона при триангуляции полигонов с числом вершин больше трёх.
Параметры
[in] manifold заданный флаг

Определение в строке 213 файла poisson.h.

setMinDepth()

template<typename PointNT >
void pcl::Poisson< PointNT >::setMinDepth ( int min_depth )
inline

Определение в строке 109 файла poisson.h.

setOutputPolygons()

template<typename PointNT >
void pcl::Poisson< PointNT >::setOutputPolygons ( bool output_polygons )
inline

Включение этого флага указывает алгоритму реконструкции выводить полигональную сетку (вместо триангуляции результатов алгоритма Marching Cubes).

Параметры
[in] output_polygons заданный флаг

Определение в строке 191 файла poisson.h.

setPointWeight()

template<typename PointNT >
void pcl::Poisson< PointNT >::setPointWeight ( float point_weight ) inline

Определение в строке 115 файла poisson.h.

setSamplesPerNode()

template<typename PointNT >
void pcl::Poisson< PointNT >::setSamplesPerNode ( float samples_per_node ) inline

Установить минимальное число выборочных точек, которые должны находиться внутри узла октодерева при адаптации его построения к плотности выборки.

Примечание
Для выборок без шума можно использовать небольшие значения в диапазоне [1.0 - 5.0]. Для более зашумлённых выборок могут потребоваться большие значения в диапазоне [15.0 - 20.0], чтобы получить более гладкую реконструкцию с уменьшенным уровнем шума.
Параметры
[in] samples_per_node заданное значение параметра

Определение в строке 166 файла poisson.h.

setScale()

template<typename PointNT >
void pcl::Poisson< PointNT >::setScale ( float scale ) inline

Установить отношение диаметра куба, используемого для реконструкции, к диаметру ограничивающего куба выборки.

Параметры
[in] scale заданное значение параметра

Определение в строке 125 файла poisson.h.

setSolverDivide()

template<typename PointNT >
void pcl::Poisson< PointNT >::setSolverDivide ( int solver_divide ) inline

Установить глубину, на которой для решения уравнения Лапласа используется блочный метод Гаусса — Зейделя.

Примечание
Этот параметр позволяет снизить накладные расходы памяти ценой небольшого увеличения времени реконструкции. (На практике мы обнаружили, что для реконструкции глубины 9 и выше глубина подразделения 7 или 8 может значительно снизить потребление памяти.)
Параметры
[in] solver_divide заданное значение параметра

Определение в строке 140 файла poisson.h.

setThreads()

template<typename PointNT >
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API