Spec-Zone.ru › PointCloudLibrary

Алгоритм реконструкции поверхности методом marching cubes. Подробнее...

#include <pcl/surface/marching_cubes.h>

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

Общедоступные типы

using Ptr = shared_ptr< MarchingCubes< PointNT > >
using ConstPtr = shared_ptr< const MarchingCubes< 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

Открытые функции-члены

MarchingCubes (const float percentage_extend_grid=0.0f, const float iso_level=0.0f)
Конструктор. Подробнее...
~MarchingCubes () override
Деструктор. Подробнее...
void setIsoLevel (float iso_level)
Метод, задающий изоуровень извлекаемой поверхности. Подробнее...
float getIsoLevel ()
Метод, возвращающий изоуровень извлекаемой поверхности. Подробнее...
void setGridResolution (int res_x, int res_y, int res_z)
Метод, задающий разрешение сетки алгоритма marching cubes. Подробнее...
void getGridResolution (int &res_x, int &res_y, int &res_z)
Метод для получения разрешения сетки алгоритма marching cubes. Подробнее...
void setPercentageExtendGrid (float percentage)
Метод, задающий параметр, определяющий, сколько свободного пространства следует оставить внутри сетки между ограничивающим параллелепипедом облака точек и границами сетки. Подробнее...
float getPercentageExtendGrid ()
Метод, возвращающий параметр, определяющий, сколько свободного пространства следует оставить внутри сетки между ограничивающим параллелепипедом облака точек и границами сетки, в процентах от ограничивающего параллелепипеда. Подробнее...
- Открытые функции-члены, унаследованные от 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
Переопределение оператора PointCloud operator[] для сокращения кода. Подробнее...

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

virtual void voxelizeData ()=0
Преобразовать облако точек в воксельные данные. Подробнее...
void interpolateEdge (Eigen::Vector3f &p1, Eigen::Vector3f &p2, float val_p1, float val_p2, Eigen::Vector3f &output)
Выполнить интерполяцию вдоль ребра вокселя. Подробнее...
void createSurface (const std::vector< float > &leaf_node, const Eigen::Vector3i &index_3d, pcl::PointCloud< PointNT > &cloud)
Вычислить соответствующие многоугольники в листовом узле. Подробнее...
void getBoundingBox ()
Получить ограничивающий параллелепипед для входных точек. Подробнее...
virtual float getGridValue (Eigen::Vector3i pos)
Метод, возвращающий скалярное значение в заданной позиции сетки. Подробнее...
void getNeighborList1D (std::vector< float > &leaf, Eigen::Vector3i &index3d)
Метод, возвращающий скалярные значения соседних элементов для заданной 3D-позиции в сетке. Подробнее...
std::string getClassName () const override
Метод получения имени класса. Подробнее...
void performReconstruction (pcl::PolygonMesh &output) override
Извлечь поверхность. Подробнее...
void performReconstruction (pcl::PointCloud< PointNT > &points, std::vector< pcl::Vertices > &polygons) override
Извлечь поверхность. Подробнее...
- Защищённые функции-члены, унаследованные от pcl::PCLBase< PointInT >
bool initCompute ()
Этот метод следует вызывать перед началом фактических вычислений. Подробнее...
bool deinitCompute ()
Этот метод следует вызывать после завершения фактических вычислений. Подробнее...

Защищённые атрибуты

std::vector< float > grid_
Структура данных, в которой хранится трёхмерная сетка. Подробнее...
int res_x_ = 32
Разрешение сетки. Подробнее...
int res_y_ = 32
int res_z_ = 32
Eigen::Array3f upper_boundary_
Ограничивающий параллелепипед Подробнее...
Eigen::Array3f lower_boundary_
Eigen::Array3f size_voxel_
Размер вокселей Подробнее...
float percentage_extend_grid_
Параметр, определяющий, сколько свободного пространства в процентах от ограничивающего параллелепипеда следует оставить внутри сетки между ограничивающим параллелепипедом облака точек и границами сетки. Подробнее...
float iso_level_
Извлекаемый изоуровень. Подробнее...
- Защищённые атрибуты, унаследованные от 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_
Если набор индексов не задан, создаётся набор фиктивных индексов, соответствующий входному облаку точек. Подробнее...

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

template<typename PointNT>
class pcl::MarchingCubes< PointNT >

Алгоритм восстановления поверхности методом marching cubes.

Это абстрактный класс, который принимает сетку и извлекает изоповерхность в виде сетки полигонов на основе оригинальной статьи о marching cubes:

Lorensen W.E., Cline H.E., "Marching cubes: A high resolution 3d surface construction algorithm", SIGGRAPH '87

Параметры шаблона
PointNT Используйте pcl::PointNormal или pcl::PointXYZRGBNormal или pcl::PointXYZINormal
Автор
Alexandru E. Ichim

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

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

ConstPtr

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

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

KdTree

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

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

KdTreePtr

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

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

PointCloudPtr

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

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

Ptr

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

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

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

MarchingCubes()

template<typename PointNT >
pcl::MarchingCubes< PointNT >::MarchingCubes ( const float percentage_extend_grid = 0.0f,
const float iso_level = 0.0f
)
inline

Конструктор.

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

~MarchingCubes()

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

Деструктор.

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

createSurface()

template<typename PointNT >
void pcl::MarchingCubes< PointNT >::createSurface ( const std::vector< float > & leaf_node,
const Eigen::Vector3i & index_3d,
pcl::PointCloud< PointNT > & cloud
)
protected

Вычисляет соответствующие многоугольники в узле-листе.

Параметры
leaf_node проверяемый узел-лист
index_3d трёхмерный индекс проверяемого узла-листа
cloud облако точек для хранения вершин многоугольника

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

Ссылки: pcl::edgeTable, pcl::PointCloud< PointT >::push_back() и pcl::triTable.

getBoundingBox()

template<typename PointNT >
void pcl::MarchingCubes< PointNT >::getBoundingBox
protected

Получает ограничивающий параллелепипед для входных точек данных.

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

Ссылка: pcl::getMinMax3D().

getClassName()

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

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

Переопределяет метод класса pcl::PCLSurfaceBase< PointInT >.

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

getGridResolution()

template<typename PointNT >
void pcl::MarchingCubes< PointNT >::getGridResolution ( int & res_x,
int & res_y,
int & res_z
)
inline

Метод получения разрешения сетки marching cubes.

Параметры
[in] res_x разрешение сетки вдоль оси x
[in] res_y разрешение сетки вдоль оси y
[in] res_z разрешение сетки вдоль оси z

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

Ссылки: pcl::MarchingCubes< PointNT >::res_x_, pcl::MarchingCubes< PointNT >::res_y_ и pcl::MarchingCubes< PointNT >::res_z_.

getGridValue()

template<typename PointNT >
float pcl::MarchingCubes< PointNT >::getGridValue ( Eigen::Vector3i pos )
protectedvirtual

Метод, возвращающий скалярное значение в заданной позиции сетки.

Параметры
[in] pos трёхмерная позиция в сетке

TODO что возвращать?

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

getIsoLevel()

template<typename PointNT >
float pcl::MarchingCubes< PointNT >::getIsoLevel ( )
inline

Метод, возвращающий изоуровень извлекаемой поверхности.

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

Ссылка: pcl::MarchingCubes< PointNT >::iso_level_.

getNeighborList1D()

template<typename PointNT >
void pcl::MarchingCubes< PointNT >::getNeighborList1D ( std::vector< float > & leaf,
Eigen::Vector3i & index3d
)
protected

Метод, возвращающий скалярные значения соседних точек для заданной трёхмерной позиции в сетке.

Параметры
[in] index3d точка в сетке
[out] leaf набор значений

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

getPercentageExtendGrid()

template<typename PointNT >
float pcl::MarchingCubes< PointNT >::getPercentageExtendGrid ( )
inline

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

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

Ссылка: pcl::MarchingCubes< PointNT >::percentage_extend_grid_.

interpolateEdge()

template<typename PointNT >
void pcl::MarchingCubes< PointNT >::interpolateEdge ( Eigen::Vector3f & p1,
Eigen::Vector3f & p2,
float val_p1,
float val_p2,
Eigen::Vector3f & output
)
protected

Интерполировать вдоль ребра вокселя.

Параметры
[in] p1 Первая точка на ребре
[in] p2 Вторая точка на ребре
[in] val_p1 Скалярное значение в точке p1
[in] val_p2 Скалярное значение в точке p2
[out] output Интерполированная точка на ребре

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

performReconstruction() [1/2]

template<typename PointNT >
void pcl::MarchingCubes< PointNT >::performReconstruction ( pcl::PointCloud< PointNT > & points,
std::vector< pcl::Vertices > & polygons
)
overrideprotectedvirtual

Извлечь поверхность.

Параметры
[out] points точки извлечённой сетки
[out] polygons связность точек извлечённой сетки.

Реализует pcl::SurfaceReconstruction< PointNT >.

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

Ссылки: pcl::PointCloud< PointT >::clear(), pcl::PointCloud< PointT >::points, pcl::PointCloud< PointT >::reserve(), pcl::PointCloud< PointT >::size(), pcl::PointCloud< PointT >::swap() и pcl::Vertices::vertices.

performReconstruction() [2/2]

template<typename PointNT >
void pcl::MarchingCubes< PointNT >::performReconstruction ( pcl::PolygonMesh & output )
overrideprotectedvirtual

Извлечь поверхность.

Параметры
[out] output результирующая полигональная сетка

Реализует pcl::SurfaceReconstruction< PointNT >.

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

Ссылки: pcl::PolygonMesh::cloud, pcl::PolygonMesh::polygons и pcl::toPCLPointCloud2().

setGridResolution()

template<typename PointNT >
void pcl::MarchingCubes< PointNT >::setGridResolution ( int res_x,
int res_y,
int res_z
)
inline

Метод, задающий разрешение сетки Marching Cubes.

Параметры
[in] res_x разрешение сетки вдоль оси x
[in] res_y разрешение сетки вдоль оси y
[in] res_z разрешение сетки вдоль оси z

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

Ссылки: pcl::MarchingCubes< PointNT >::res_x_, pcl::MarchingCubes< PointNT >::res_y_ и pcl::MarchingCubes< PointNT >::res_z_.

setIsoLevel()

template<typename PointNT >
void pcl::MarchingCubes< PointNT >::setIsoLevel ( float iso_level )
inline

Метод, задающий изоуровень извлекаемой поверхности.

Параметры
[in] iso_level изоуровень.

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

Ссылка: pcl::MarchingCubes< PointNT >::iso_level_.

setPercentageExtendGrid()

template<typename PointNT >
void pcl::MarchingCubes< PointNT >::setPercentageExtendGrid ( float percentage )
inline

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

Не влияет на разрешение сетки, а только соответственно изменяет размер вокселя.

Параметры
[in] percentage доля ограничивающего параллелепипеда, которая должна оставаться пустой между ограничивающим параллелепипедом и границами сетки.

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

Ссылка: pcl::MarchingCubes< PointNT >::percentage_extend_grid_.

voxelizeData()

template<typename PointNT >
virtual void pcl::MarchingCubes< PointNT >::voxelizeData ( )
protectedpure virtual

Преобразовать облако точек в данные вокселей.

Реализовано в классах pcl::MarchingCubesRBF< PointNT > и pcl::MarchingCubesHoppe< PointNT >.

Описание данных-членов

grid_

template<typename PointNT >
std::vector<float> pcl::MarchingCubes< PointNT >::grid_
protected

Структура данных, хранящая трёхмерную сетку.

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

iso_level_

template<typename PointNT >
float pcl::MarchingCubes< PointNT >::iso_level_
protected

Изоуровень, который необходимо извлечь.

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

Используется в pcl::MarchingCubes< PointNT >::getIsoLevel() и pcl::MarchingCubes< PointNT >::setIsoLevel().

lower_boundary_

template<typename PointNT >
Eigen::Array3f pcl::MarchingCubes< PointNT >::lower_boundary_
protected

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

percentage_extend_grid_

template<typename PointNT >
float pcl::MarchingCubes< PointNT >::percentage_extend_grid_
protected

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

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

Используется в pcl::MarchingCubes< PointNT >::getPercentageExtendGrid() и pcl::MarchingCubes< PointNT >::setPercentageExtendGrid().

res_x_

template<typename PointNT >
int pcl::MarchingCubes< PointNT >::res_x_ = 32
protected

Разрешение сетки.

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

Используется в pcl::MarchingCubes< PointNT >::getGridResolution() и pcl::MarchingCubes< PointNT >::setGridResolution().

res_y_

template<typename PointNT >
int pcl::MarchingCubes< PointNT >::res_y_ = 32
protected

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

Используется в pcl::MarchingCubes< PointNT >::getGridResolution() и pcl::MarchingCubes< PointNT >::setGridResolution().

res_z_

template<typename PointNT >
int pcl::MarchingCubes< PointNT >::res_z_ = 32
protected

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

Используется в pcl::MarchingCubes< PointNT >::getGridResolution() и pcl::MarchingCubes< PointNT >::setGridResolution().

size_voxel_

template<typename PointNT >
Eigen::Array3f pcl::MarchingCubes< PointNT >::size_voxel_
protected

Размер вокселей

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

upper_boundary_

template<typename PointNT >
Eigen::Array3f pcl::MarchingCubes< PointNT >::upper_boundary_
protected

Ограничивающий параллелепипед

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


Документация этого класса создана на основе следующих файлов:
  • pcl/surface/marching_cubes.h
  • pcl/surface/impl/marching_cubes.hpp

© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_marching_cubes.html

Spec-Zone.ru

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