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 ()
Получить количество потоков. Подробнее...
- Public Member Functions inherited from pcl::SurfaceReconstruction< PointNT >
SurfaceReconstruction ()
Конструктор. Подробнее...
~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 ()> Подробнее...
- Public Member Functions inherited from 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
Переопределить PointCloud operator[] для сокращения кода. Подробнее...

Защищённые члены-функции

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_
Если набор индексов не задан, мы создаём набор фиктивных индексов, имитирующих входное облако точек. Подробнее...

Подробное описание

шаблон<typename PointNT>
class pcl::Poisson< PointNT >

Алгоритм реконструкции поверхности Пойссона.

Примечание
Код адаптирован из Misha Kazhdan: http://www.cs.jhu.edu/~misha/Code/PoissonRecon/
Основан на статье:
  • Michael Kazhdan, Matthew Bolitho, Hugues Hoppe, "Poisson surface reconstruction", SGP '06 Proceedings of the fourth Eurographics symposium on Геометрия processing
Автор
Alexandru-Eugen Ichim

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

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

ConstPtr

шаблон<typename PointNT >
используется pcl::Poisson< PointNT >::ConstPtr = shared_ptr<const Poisson<PointNT> >

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

KdTree

шаблон<typename PointNT >
используется 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

Конструктор, устанавливающий все параметры в значения по умолчанию.

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

~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 ( )
inline

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

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

getDegree()

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

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

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

getDepth()

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

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

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

getIsoDivide()

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

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

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

getManifold()

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

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

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

getMinDepth()

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

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

getOutputPolygons()

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

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

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

getPointWeight()

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

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

getSamplesPerNode()

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

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

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

getScale()

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

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

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

getSolverDivide()

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

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

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

getThreads()

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

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

Определение в строке 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 >.

Определение в строке 244 файла 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 >.

Определение в строке 164 файла 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 соответствует решению на сетке вокселей с разрешением не более 2d x 2d x 2d. Обратите внимание, что, поскольку реконструктор адаптирует ок-дерево к плотности выборки, указанная глубина реконструкции является только верхней границей.
Параметры
[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 количество потоков

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


The documentation for this class was generated from the following files:
  • 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