ExtractPolygonalPrismData использует набор индексов точек, представляющих плоскую модель, и вместе с заданной высотой создает трехмерную многоугольную призму. Подробнее...
#include <pcl/segmentation/extract_polygonal_prism_data.h>
Общедоступные типы | |
| using | PointCloud = pcl::PointCloud< PointT > |
| using | PointCloudPtr = typename PointCloud::Ptr |
| using | PointCloudConstPtr = typename PointCloud::ConstPtr |
| using | PointIndicesPtr = PointIndices::Ptr |
| using | PointIndicesConstPtr = PointIndices::ConstPtr |
|
| |
| using | PointCloud = pcl::PointCloud< PointT > |
| using | PointCloudPtr = typename PointCloud::Ptr |
| using | PointCloudConstPtr = typename PointCloud::ConstPtr |
| using | PointIndicesPtr = PointIndices::Ptr |
| using | PointIndicesConstPtr = PointIndices::ConstPtr |
Общедоступные функции-члены | |
| ExtractPolygonalPrismData ()=default | |
| Конструктор без параметров. Подробнее... |
|
| void | setInputPlanarHull (const PointCloudConstPtr &hull) |
| Задать указатель на входной набор данных плоской выпуклой оболочки. Подробнее... |
|
| void | setPolygons (const std::vector< pcl::Vertices > &polygons) |
| Задать вектор индексов вогнутых многоугольников, полученный из ConcaveHull::polygons. Подробнее... |
|
| PointCloudConstPtr | getInputPlanarHull () const |
| Получить указатель на входной набор данных плоской выпуклой оболочки. Подробнее... |
|
| void | setHeightLimits (double height_min, double height_max) |
| Задать пределы высоты. Подробнее... |
|
| void | getHeightLimits (double &height_min, double &height_max) const |
| Получить заданные пользователем пределы высоты (мин./макс.). Подробнее... |
|
| void | setViewPoint (float vpx, float vpy, float vpz) |
| Задать точку обзора. Подробнее... |
|
| void | getViewPoint (float &vpx, float &vpy, float &vpz) const |
| Получить точку обзора. Подробнее... |
|
| void | segment (PointIndices &output) |
| Извлечение кластеров в PointCloud, заданном вызовами <setInputCloud (), setIndices ()> Подробнее... |
|
|
| |
| 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 PointT & | operator[] (std::size_t pos) const |
| Переопределение оператора [] класса PointCloud для сокращения кода. Подробнее... |
|
Защищенные функции-члены | |
| virtual std::string | getClassName () const |
| Метод получения имени класса. Подробнее... |
|
|
| |
| bool | initCompute () |
| Этот метод следует вызывать перед началом фактического вычисления. Подробнее... |
|
| bool | deinitCompute () |
| Этот метод следует вызывать после завершения фактического вычисления. Подробнее... |
|
Защищённые атрибуты | |
| PointCloudConstPtr | planar_hull_ {nullptr} |
| Указатель на входной набор данных плоской выпуклой оболочки. Подробнее... |
|
| std::vector< pcl::Vertices > | polygons_ |
| Векторы индексов полигонов, полученные от ConcaveHull Подробнее... |
|
| int | min_pts_hull_ {3} |
| Минимальное количество точек, необходимое для выпуклой оболочки. Подробнее... |
|
| double | height_limit_min_ {0.0} |
| Минимальная допустимая высота (расстояние до модели), начиная с которой учитывается точка. Подробнее... |
|
| double | height_limit_max_ {std::numeric_limits<float>::max()} |
| Максимальная допустимая высота (расстояние до модели), до которой учитывается точка. Подробнее... |
|
| float | vpx_ {0.0f} |
| Значения, описывающие точку обзора при сборе данных. Подробнее... |
|
| float | vpy_ {0.0f} |
| float | vpz_ {0.0f} |
|
| |
| PointCloudConstPtr | input_ |
| Входной набор данных облака точек. Подробнее... |
|
| IndicesPtr | indices_ |
| Указатель на вектор используемых индексов точек. Подробнее... |
|
| bool | use_indices_ |
| Установите значение true, если используются индексы точек. Подробнее... |
|
| bool | fake_indices_ |
| Если набор индексов не задан, создаётся набор фиктивных индексов, имитирующий входное PointCloud. Подробнее... |
|
Подробное описание
template<typename PointT>
class pcl::ExtractPolygonalPrismData< PointT >
ExtractPolygonalPrismData использует набор индексов точек, представляющих плоскую модель, и на их основе вместе с заданной высотой строит трёхмерную полигональную призму.
Затем эта полигональная призма используется для сегментации всех точек, расположенных внутри неё.
Пример использования — извлечение данных, находящихся внутри заданных трёхмерных границ (например, объектов, опирающихся на плоскость).
Пример использования:
double z_min = 0., z_max = 0.05; // we want the points above the plane, no farther than 5 cm from the surface
pcl::PointCloud<pcl::PointXYZ>::Ptr hull_points (new pcl::PointCloud<pcl::PointXYZ> ());
pcl::ConvexHull<pcl::PointXYZ> hull;
// hull.setDimension (2); // not necessarily needed, but we need to check the dimensionality of the output
hull.setInputCloud (cloud);
hull.reconstruct (hull_points);
if (hull.getDimension () == 2)
{
pcl::ExtractPolygonalPrismData<pcl::PointXYZ> prism;
prism.setInputCloud (point_cloud);
prism.setInputPlanarHull (hull_points);
prism.setHeightLimits (z_min, z_max);
prism.segment (cloud_indices);
}
else
PCL_ERROR ("The input cloud does not represent a planar surface.\n");
pcl::ConvexHullConvexHull using libqhull library.Definition: convex_hull.h:73
pcl::ConvexHull
ConvexHull using libqhull library.
Definition: convex_hull.h:73
pcl::ConvexHull::getDimensionint getDimension() constReturns the dimensionality (2 or 3) of the calculated hull.Definition: convex_hull.h:160
pcl::ConvexHull::getDimension
int getDimension() const
Returns the dimensionality (2 or 3) of the calculated hull.
Definition: convex_hull.h:160
pcl::ConvexHull::reconstructvoid reconstruct(PointCloud &points, std::vector< pcl::Vertices > &polygons)Compute a convex hull for all points given.Definition: convex_hull.hpp:482
pcl::ConvexHull::reconstruct
void reconstruct(PointCloud &points, std::vector< pcl::Vertices > &polygons)
Compute a convex hull for all points given.
Definition: convex_hull.hpp:482
pcl::ExtractPolygonalPrismDataExtractPolygonalPrismData uses a set of point indices that represent a planar model,...Definition: extract_polygonal_prism_data.h:104
pcl::ExtractPolygonalPrismData
ExtractPolygonalPrismData uses a set of point indices that represent a planar model,...
Definition: extract_polygonal_prism_data.h:104
pcl::ExtractPolygonalPrismData::setHeightLimitsvoid setHeightLimits(double height_min, double height_max)Set the height limits.Definition: extract_polygonal_prism_data.h:149
pcl::ExtractPolygonalPrismData::setHeightLimits
void setHeightLimits(double height_min, double height_max)
Set the height limits.
Definition: extract_polygonal_prism_data.h:149
pcl::ExtractPolygonalPrismData::setInputPlanarHullvoid setInputPlanarHull(const PointCloudConstPtr &hull)Provide a pointer to the input planar hull dataset.Definition: extract_polygonal_prism_data.h:126
pcl::ExtractPolygonalPrismData::setInputPlanarHull
void setInputPlanarHull(const PointCloudConstPtr &hull)
Provide a pointer to the input planar hull dataset.
Definition: extract_polygonal_prism_data.h:126
pcl::ExtractPolygonalPrismData::segmentvoid segment(PointIndices &output)Cluster extraction in a PointCloud given by <setInputCloud (), setIndices ()>Definition: extract_polygonal_prism_data.hpp:149
pcl::ExtractPolygonalPrismData::segment
void segment(PointIndices &output)
Cluster extraction in a PointCloud given by <setInputCloud (), setIndices ()>
Definition: extract_polygonal_prism_data.hpp:149
pcl::PCLBase::setInputCloudvirtual void setInputCloud(const PointCloudConstPtr &cloud)Provide a pointer to the input dataset.Definition: pcl_base.hpp:65
pcl::PCLBase::setInputCloud
virtual void setInputCloud(const PointCloudConstPtr &cloud)
Provide a pointer to the input dataset.
Definition: pcl_base.hpp:65
pcl::PointCloud< pcl::PointXYZ >
pcl::PointCloud< pcl::PointXYZ >
pcl::PointCloud::Ptrshared_ptr< PointCloud< PointT > > PtrDefinition: point_cloud.h:413
pcl::PointCloud::Ptr
shared_ptr< PointCloud< PointT > > Ptr
Definition: point_cloud.h:413
Определение в строке 103 файла extract_polygonal_prism_data.h.
Документация псевдонимов типов-членов
PointCloud
| using pcl::ExtractPolygonalPrismData< PointT >::PointCloud = pcl::PointCloud<PointT> |
Определение в строке 111 файла extract_polygonal_prism_data.h.
PointCloudConstPtr
| using pcl::ExtractPolygonalPrismData< PointT >::PointCloudConstPtr = typename PointCloud::ConstPtr |
Определение в строке 113 файла extract_polygonal_prism_data.h.
PointCloudPtr
| using pcl::ExtractPolygonalPrismData< PointT >::PointCloudPtr = typename PointCloud::Ptr |
Определение в строке 112 файла extract_polygonal_prism_data.h.
PointIndicesConstPtr
| using pcl::ExtractPolygonalPrismData< PointT >::PointIndicesConstPtr = PointIndices::ConstPtr |
Определение в строке 116 файла extract_polygonal_prism_data.h.
PointIndicesPtr
| using pcl::ExtractPolygonalPrismData< PointT >::PointIndicesPtr = PointIndices::Ptr |
Определение в строке 115 файла extract_polygonal_prism_data.h.
Документация конструкторов и деструкторов
ExtractPolygonalPrismData()
| default |
Пустой конструктор.
Документация функций-членов
getClassName()
| inlineprotectedvirtual |
Метод получения имени класса.
Определение в строке 220 файла extract_polygonal_prism_data.h.
getHeightLimits()
| inline |
Получить заданные пользователем пределы высоты (мин./макс.).
Значения по умолчанию: 0, std::numeric_limits<float>::max().
- Параметры
-
[out] height_min итоговое минимальное ограничение высоты [out] height_max итоговое максимальное ограничение высоты
Определение в строке 161 файла extract_polygonal_prism_data.h.
Ссылки на pcl::ExtractPolygonalPrismData< PointT >::height_limit_max_ и pcl::ExtractPolygonalPrismData< PointT >::height_limit_min_.
getInputPlanarHull()
| inline |
Получить указатель на входной набор данных плоской выпуклой оболочки.
Определение в строке 140 файла extract_polygonal_prism_data.h.
Ссылка на pcl::ExtractPolygonalPrismData< PointT >::planar_hull_.
getViewPoint()
| inline |
Получить точку обзора.
Определение в строке 182 файла extract_polygonal_prism_data.h.
Ссылки на pcl::ExtractPolygonalPrismData< PointT >::vpx_, pcl::ExtractPolygonalPrismData< PointT >::vpy_ и pcl::ExtractPolygonalPrismData< PointT >::vpz_.
segment()
| void pcl::ExtractPolygonalPrismData< PointT >::segment | ( | pcl::PointIndices & | output | ) |
Извлечение кластеров из PointCloud, заданного вызовами <setInputCloud (), setIndices ()>
- Параметры
-
[out] output итоговые индексы точек, поддерживающих найденную модель (внутренние точки)
Определение в строке 149 файла extract_polygonal_prism_data.hpp.
Ссылки на pcl::computeMeanAndCovarianceMatrix(), pcl::geometry::distance(), pcl::eigen33(), pcl::PointIndices::header, pcl::PointIndices::indices, pcl::isXYPointIn2DXYPolygon(), pcl::pointToPlaneDistanceSigned(), pcl::SampleConsensusModelPlane< PointT >::projectPoints(), pcl::PointCloud< PointT >::resize() и pcl::PointCloud< PointT >::size().
setHeightLimits()
| inline |
Задать пределы высоты.
Все точки, расстояние которых до модели выходит за пределы этого интервала, будут отброшены.
- Параметры
-
[in] height_min минимальное допустимое расстояние до плоской модели [in] height_max максимальное допустимое расстояние до плоской модели
Определение в строке 149 файла extract_polygonal_prism_data.h.
Ссылки на pcl::ExtractPolygonalPrismData< PointT >::height_limit_max_ и pcl::ExtractPolygonalPrismData< PointT >::height_limit_min_.
setInputPlanarHull()
| inline |
Передать указатель на входной набор данных плоской выпуклой оболочки.
- Примечание
- См. пример в описании класса, где объясняется, как получить этот набор данных.
- Параметры
-
[in] hull входной набор данных плоской выпуклой оболочки
Определение в строке 126 файла extract_polygonal_prism_data.h.
Ссылка на pcl::ExtractPolygonalPrismData< PointT >::planar_hull_.
setPolygons()
| inline |
Передать вектор индексов вогнутых полигонов, полученный из ConcaveHull::polygons.
- Примечание
- Это необходимо только при использовании ConcaveHull, содержащего более одного полигона.
- Параметры
-
[in] polygons - см. ConcaveHull::polygons
Определение в строке 133 файла extract_polygonal_prism_data.h.
Ссылка на pcl::ExtractPolygonalPrismData< PointT >::polygons_.
setViewPoint()
| inline |
Задать точку обзора.
- Параметры
-
[in] vpx координата X точки обзора [in] vpy координата Y точки обзора [in] vpz координата Z точки обзора
Определение в строке 173 файла extract_polygonal_prism_data.h.
Ссылки на pcl::ExtractPolygonalPrismData< PointT >::vpx_, pcl::ExtractPolygonalPrismData< PointT >::vpy_ и pcl::ExtractPolygonalPrismData< PointT >::vpz_.
Документация данных-членов
height_limit_max_
| protected |
Максимально допустимая высота (расстояние до модели), в пределах которой учитывается точка.
Определение в строке 213 файла extract_polygonal_prism_data.h.
Используется в pcl::ExtractPolygonalPrismData< PointT >::getHeightLimits() и pcl::ExtractPolygonalPrismData< PointT >::setHeightLimits().
height_limit_min_
| protected |
Минимально допустимая высота (расстояние до модели), начиная с которой учитывается точка.
Определение в строке 208 файла extract_polygonal_prism_data.h.
Используется в pcl::ExtractPolygonalPrismData< PointT >::getHeightLimits() и pcl::ExtractPolygonalPrismData< PointT >::setHeightLimits().
min_pts_hull_
| protected |
Минимальное количество точек, необходимое для построения выпуклой оболочки.
Определение в строке 203 файла extract_polygonal_prism_data.h.
planar_hull_
| protected |
Указатель на входной набор данных плоской оболочки.
Определение в строке 197 файла extract_polygonal_prism_data.h.
Используется в pcl::ExtractPolygonalPrismData< PointT >::getInputPlanarHull() и pcl::ExtractPolygonalPrismData< PointT >::setInputPlanarHull().
polygons_
| protected |
Векторы индексов полигонов, полученные из ConcaveHull
Определение в строке 200 файла extract_polygonal_prism_data.h.
Используется в pcl::ExtractPolygonalPrismData< PointT >::setPolygons().
vpx_
| protected |
Значения, описывающие точку обзора при получении данных.
По умолчанию: 0,0,0.
Определение в строке 216 файла extract_polygonal_prism_data.h.
Используется в pcl::ExtractPolygonalPrismData< PointT >::getViewPoint() и pcl::ExtractPolygonalPrismData< PointT >::setViewPoint().
vpy_
| protected |
Определение в строке 216 файла extract_polygonal_prism_data.h.
Используется в pcl::ExtractPolygonalPrismData< PointT >::getViewPoint() и pcl::ExtractPolygonalPrismData< PointT >::setViewPoint().
vpz_
| protected |
Определение в строке 216 файла extract_polygonal_prism_data.h.
Используется в pcl::ExtractPolygonalPrismData< PointT >::getViewPoint() и pcl::ExtractPolygonalPrismData< PointT >::setViewPoint().
Документация этого класса создана на основе следующих файлов:
- pcl/segmentation/extract_polygonal_prism_data.h
- pcl/segmentation/impl/extract_polygonal_prism_data.hpp
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_extract_polygonal_prism_data.html