Spec-Zone.ru › PointCloudLibrary

Алгоритм реконструкции поверхности методом марширующих кубов. Подробнее...

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

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

шаблон<typename PointNT>
класс pcl::MarchingCubes< PointNT >

Алгоритм реконструкции поверхности марширующих кубов.

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

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

Автор
Alexandru E. Ichim

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

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

ConstPtr

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

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

KdTree

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

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

KdTreePtr

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

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

PointCloudPtr

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

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

Ptr

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

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

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

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

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

getGridResolution()

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

Метод для получения разрешения сетки марширующих кубов.

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

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

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

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

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

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

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

getPercentageExtendGrid()

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

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

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

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

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

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

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

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

setPercentageExtendGrid()

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

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

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

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

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

Структура данных, хранящая 3D сетку.

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

iso_level_

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

Уровень изоляции для извлечения.

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

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

lower_boundary_

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

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

percentage_extend_grid_

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

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

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

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

res_x_

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

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

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

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

res_y_

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

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

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

res_z_

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

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

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

size_voxel_

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

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

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

upper_boundary_

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

Граничная коробка

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