Spec-Zone.ru › PointCloudLibrary

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

#include <pcl/features/boundary.h>

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

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

using Ptr = shared_ptr< BoundaryEstimation< PointInT, PointNT, PointOutT > >
using ConstPtr = shared_ptr< const BoundaryEstimation< PointInT, PointNT, PointOutT > >
using PointCloudOut = typename Feature< PointInT, PointOutT >::PointCloudOut
- Общедоступные типы, унаследованные от pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >
using PointCloudN = pcl::PointCloud< PointNT >
using PointCloudNPtr = typename PointCloudN::Ptr
using PointCloudNConstPtr = typename PointCloudN::ConstPtr
using Ptr = shared_ptr< FeatureFromNormals< PointInT, PointNT, PointOutT > >
using ConstPtr = shared_ptr< const FeatureFromNormals< PointInT, PointNT, PointOutT > >
- Общедоступные типы, унаследованные от pcl::Feature< PointInT, PointOutT >
using BaseClass = PCLBase< PointInT >
using Ptr = shared_ptr< Feature< PointInT, PointOutT > >
using ConstPtr = shared_ptr< const Feature< PointInT, PointOutT > >
using KdTree = pcl::search::Search< PointInT >
using KdTreePtr = typename KdTree::Ptr
using PointCloudIn = pcl::PointCloud< PointInT >
using PointCloudInPtr = typename PointCloudIn::Ptr
using PointCloudInConstPtr = typename PointCloudIn::ConstPtr
using PointCloudOut = pcl::PointCloud< PointOutT >
using SearchMethod = std::function< int(std::size_t, double, pcl::Indices &, std::vector< float > &)>
using SearchMethodSurface = std::function< int(const PointCloudIn &cloud, std::size_t index, double, pcl::Indices &, std::vector< float > &)>
- Общедоступные типы, унаследованные от 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

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

BoundaryEstimation ()
Пустой конструктор. Подробнее...
bool isBoundaryPoint (const pcl::PointCloud< PointInT > &cloud, int q_idx, const pcl::Indices &indices, const Eigen::Vector4f &u, const Eigen::Vector4f &v, const float angle_threshold)
Проверяет, является ли точка граничной точкой в плоской области проецированных точек, заданной индексами. Подробнее...
bool isBoundaryPoint (const pcl::PointCloud< PointInT > &cloud, const PointInT &q_point, const pcl::Indices &indices, const Eigen::Vector4f &u, const Eigen::Vector4f &v, const float angle_threshold)
Проверяет, является ли точка граничной точкой в плоской области проецированных точек, заданной индексами. Подробнее...
void setAngleThreshold (float angle)
Задать пороговое значение угла, определяющее, считать ли точки граничными или обычными. Подробнее...
float getAngleThreshold ()
Получить заданное пользователем пороговое значение угла. Подробнее...
void getCoordinateSystemOnPlane (const PointNT &p_coeff, Eigen::Vector4f &u, Eigen::Vector4f &v)
Получить координатную систему u-v-n, лежащую в плоскости, заданной её нормалью. Подробнее...
- Открытые функции-члены, унаследованные от pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >
FeatureFromNormals ()
Пустой конструктор. Подробнее...
void setInputNormals (const PointCloudNConstPtr &normals)
Задать указатель на входной набор данных, содержащий нормали точек набора данных XYZ. Подробнее...
PointCloudNConstPtr getInputNormals () const
Получить указатель на нормали облака входных точек XYZ. Подробнее...
- Открытые функции-члены, унаследованные от pcl::Feature< PointInT, PointOutT >
Feature ()
Пустой конструктор. Подробнее...
void setSearchSurface (const PointCloudInConstPtr &cloud)
Задать указатель на набор данных, содержащий дополнительные сведения для оценки признаков каждой точки входного набора данных. Подробнее...
PointCloudInConstPtr getSearchSurface () const
Получить указатель на набор данных облака точек поверхности. Подробнее...
void setSearchMethod (const KdTreePtr &tree)
Задать указатель на объект поиска. Подробнее...
KdTreePtr getSearchMethod () const
Получить указатель на используемый метод поиска. Подробнее...
double getSearchParameter () const
Получить внутренний параметр поиска. Подробнее...
void setKSearch (int k)
Задать количество ближайших соседей, используемых для оценки признаков. Подробнее...
int getKSearch () const
Получить количество ближайших соседей, используемых для оценки признаков. Подробнее...
void setRadiusSearch (double radius)
Задать радиус сферы, используемой для поиска ближайших соседей при оценке признаков. Подробнее...
double getRadiusSearch () const
Получить радиус сферы, используемый для определения соседей. Подробнее...
void compute (PointCloudOut &output)
Базовый метод оценки признаков для всех точек, заданных с помощью <setInputCloud (), setIndices ()>, с использованием поверхности из setSearchSurface () и пространственного локатора из setSearchMethod (). Подробнее...
- Открытые функции-члены, унаследованные от 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[] для сокращения кода. Подробнее...

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

void computeFeature (PointCloudOut &output) override
Оценить, лежит ли набор точек на границах поверхности, используя угловой критерий для всех точек, заданных в <setInputCloud (), setIndices ()>, поверхность из setSearchSurface () и пространственный локатор из setSearchMethod () Подробнее...
- Защищённые функции-члены, унаследованные от pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >
virtual bool initCompute ()
Этот метод следует вызывать перед началом фактических вычислений. Подробнее...
- Защищённые функции-члены, унаследованные от pcl::Feature< PointInT, PointOutT >
const std::string & getClassName () const
Получить строковое представление имени этого класса. Подробнее...
virtual bool deinitCompute ()
Этот метод следует вызывать после завершения фактических вычислений. Подробнее...
int searchForNeighbors (std::size_t index, double parameter, pcl::Indices &indices, std::vector< float > &distances) const
Поиск k ближайших соседей с использованием пространственного локатора, заданного в setSearchmethod, и поверхности, заданной в setSearchSurface. Подробнее...
int searchForNeighbors (const PointCloudIn &cloud, std::size_t index, double parameter, pcl::Indices &indices, std::vector< float > &distances) const
Поиск k ближайших соседей с использованием пространственного локатора, заданного в setSearchmethod, и поверхности, заданной в setSearchSurface. Подробнее...
- Защищённые функции-члены, унаследованные от pcl::PCLBase< PointInT >
bool initCompute ()
Этот метод следует вызывать перед началом фактических вычислений. Подробнее...
bool deinitCompute ()
Этот метод следует вызывать после завершения фактических вычислений. Подробнее...

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

float angle_threshold_
Граница принятия решения (угловой порог), определяющая, считать ли точки граничными или обычными. Подробнее...
- Защищённые атрибуты, унаследованные от pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >
PointCloudNConstPtr normals_
Указатель на входной набор данных, содержащий нормали точек набора данных XYZ. Подробнее...
- Защищённые атрибуты, унаследованные от pcl::Feature< PointInT, PointOutT >
std::string feature_name_
Имя признака. Подробнее...
SearchMethodSurface search_method_surface_
Шаблон метода поиска точек. Подробнее...
PointCloudInConstPtr surface_
Входное облако точек, описывающее поверхность, которая будет использоваться для поиска ближайших соседей. Подробнее...
KdTreePtr tree_
Указатель на объект пространственного поиска. Подробнее...
double search_parameter_
Текущий параметр поиска (либо search_radius_, либо k_). Подробнее...
double search_radius_
Радиус поиска ближайших соседей для каждой точки. Подробнее...
int k_
Количество K ближайших соседей для каждой точки. Подробнее...
bool fake_surface_
Если поверхность не задана, в качестве поверхности используется входной PointCloud. Подробнее...
- Защищённые атрибуты, унаследованные от pcl::PCLBase< PointInT >
PointCloudConstPtr input_
Входной набор данных облака точек. Подробнее...
IndicesPtr indices_
Указатель на вектор индексов точек, которые следует использовать. Подробнее...
bool use_indices_
Установлено в true, если используются индексы точек. Подробнее...
bool fake_indices_
Если набор индексов не задан, создаётся фиктивный набор индексов, соответствующий входному облаку PointCloud. Подробнее...

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

template<typename PointInT, typename PointNT, typename PointOutT>
class pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >

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

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

Ниже приведён пример оценки граничных точек облака точек PointXYZ:

pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);
// fill in the cloud data here
 
pcl::PointCloud<pcl::Normal>::Ptr normals (new pcl::PointCloud<pcl::Normal>);
// estimate normals and fill in \a normals
 
pcl::PointCloud<pcl::Boundary> boundaries;
pcl::BoundaryEstimation<pcl::PointXYZ, pcl::Normal, pcl::Boundary> est;
est.setInputCloud (cloud);
est.setInputNormals (normals);
est.setRadiusSearch (0.02); // 2cm radius
est.setSearchMethod (typename pcl::search::KdTree<PointXYZ>::Ptr (new pcl::search::KdTree<PointXYZ>)
est.compute (boundaries);
pcl::BoundaryEstimationBoundaryEstimation estimates whether a set of points is lying on surface boundaries using an angle cr...Definition: boundary.h:80
pcl::BoundaryEstimation
BoundaryEstimation estimates whether a set of points is lying on surface boundaries using an angle cr...
Definition: boundary.h:80
pcl::FeatureFromNormals::setInputNormalsvoid setInputNormals(const PointCloudNConstPtr &normals)Provide a pointer to the input dataset that contains the point normals of the XYZ dataset.Definition: feature.h:339
pcl::FeatureFromNormals::setInputNormals
void setInputNormals(const PointCloudNConstPtr &normals)
Provide a pointer to the input dataset that contains the point normals of the XYZ dataset.
Definition: feature.h:339
pcl::Feature::setRadiusSearchvoid setRadiusSearch(double radius)Set the sphere radius that is to be used for determining the nearest neighbors used for the feature e...Definition: feature.h:198
pcl::Feature::setRadiusSearch
void setRadiusSearch(double radius)
Set the sphere radius that is to be used for determining the nearest neighbors used for the feature e...
Definition: feature.h:198
pcl::Feature::setSearchMethodvoid setSearchMethod(const KdTreePtr &tree)Provide a pointer to the search object.Definition: feature.h:164
pcl::Feature::setSearchMethod
void setSearchMethod(const KdTreePtr &tree)
Provide a pointer to the search object.
Definition: feature.h:164
pcl::Feature::computevoid compute(PointCloudOut &output)Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using th...Definition: feature.hpp:202
pcl::Feature::compute
void compute(PointCloudOut &output)
Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using th...
Definition: feature.hpp:202
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
pcl::search::KdTreesearch::KdTree is a wrapper class which inherits the pcl::KdTree class for performing search function...Definition: kdtree.h:62
pcl::search::KdTree
search::KdTree is a wrapper class which inherits the pcl::KdTree class for performing search function...
Definition: kdtree.h:62
pcl::search::KdTree::Ptrshared_ptr< KdTree< PointT, Tree > > PtrDefinition: kdtree.h:75
pcl::search::KdTree::Ptr
shared_ptr< KdTree< PointT, Tree > > Ptr
Definition: kdtree.h:75
Внимание
Для признаков Boundary принято следующее:
  • если не удаётся оценить ближайших соседей точки запроса, значению признака границы присваивается NaN (не число)
  • невозможно определить граничный признак для точки, координаты которой в 3D не являются конечными. Поэтому всем точкам, содержащим данные NaN в координате x, y или z, свойству граничного признака присваивается NaN.
Автор
Radu B. Rusu

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

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

ConstPtr

template<typename PointInT , typename PointNT , typename PointOutT >
using pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::ConstPtr = shared_ptr<const BoundaryEstimation<PointInT, PointNT, PointOutT> >

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

PointCloudOut

template<typename PointInT , typename PointNT , typename PointOutT >
using pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::PointCloudOut = typename Feature<PointInT, PointOutT>::PointCloudOut

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

Ptr

template<typename PointInT , typename PointNT , typename PointOutT >
using pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::Ptr = shared_ptr<BoundaryEstimation<PointInT, PointNT, PointOutT> >

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

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

BoundaryEstimation()

template<typename PointInT , typename PointNT , typename PointOutT >
pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::BoundaryEstimation ( )
inline

Пустой конструктор.

Угловой порог angle_threshold_ устанавливается равным M_PI / 2.0

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

Ссылки: pcl::Feature< PointInT, PointOutT >::feature_name_.

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

computeFeature()

template<typename PointInT , typename PointNT , typename PointOutT >
void pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::computeFeature ( PointCloudOut & output )
overrideprotectedvirtual

Определить, лежит ли набор точек на границах поверхности, используя угловой критерий для всех точек, заданных в <setInputCloud (), setIndices ()>, поверхность из setSearchSurface () и пространственный локатор из setSearchMethod ()

Параметры
[out] output результирующий набор данных облака точек, содержащий оценки граничных точек

Реализует pcl::Feature< PointInT, PointOutT >.

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

Ссылки: pcl::isFinite().

getAngleThreshold()

template<typename PointInT , typename PointNT , typename PointOutT >
float pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::getAngleThreshold ( )
inline

Получить заданную пользователем границу принятия решения (угловой порог).

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

Ссылки: pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::angle_threshold_.

getCoordinateSystemOnPlane()

template<typename PointInT , typename PointNT , typename PointOutT >
void pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::getCoordinateSystemOnPlane ( const PointNT & p_coeff,
Eigen::Vector4f & u,
Eigen::Vector4f & v
)
inline

Получить систему координат u-v-n, расположенную на плоскости, заданной её нормалью.

Параметры
[in] p_coeff коэффициенты плоскости (содержащие нормаль к плоскости)
[out] u результирующее направление u
[out] v результирующее направление v

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

Используется в: pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >::getBoundaryPoints().

isBoundaryPoint() [1/2]

template<typename PointInT , typename PointNT , typename PointOutT >
bool pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::isBoundaryPoint ( const pcl::PointCloud< PointInT > & cloud,
const PointInT & q_point,
const pcl::Indices & indices,
const Eigen::Vector4f & u,
const Eigen::Vector4f & v,
const float angle_threshold
)

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

Примечание
Систему координат u-v-n необходимо предварительно вычислить с помощью getCoordinateSystemOnPlane
Параметры
[in] cloud указатель на входное облако точек
[in] q_point указатель на точку запроса
[in] indices оцененные соседи точки запроса
[in] u направление u
[in] v направление v
[in] angle_threshold пороговый угол (по умолчанию $\pi / 2.0$)

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

Ссылается на M_PI.

isBoundaryPoint() [2/2]

template<typename PointInT , typename PointNT , typename PointOutT >
bool pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::isBoundaryPoint ( const pcl::PointCloud< PointInT > & cloud,
int q_idx,
const pcl::Indices & indices,
const Eigen::Vector4f & u,
const Eigen::Vector4f & v,
const float angle_threshold
)

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

Примечание
Систему координат u-v-n необходимо предварительно вычислить с помощью getCoordinateSystemOnPlane
Параметры
[in] cloud указатель на входное облако точек
[in] q_idx индекс точки запроса в cloud
[in] indices оцененные соседи точки запроса
[in] u направление u
[in] v направление v
[in] angle_threshold пороговый угол (по умолчанию $\pi / 2.0$)

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

Используется в pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >::getBoundaryPoints().

setAngleThreshold()

template<typename PointInT , typename PointNT , typename PointOutT >
void pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::setAngleThreshold ( float angle )
inline

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

(по умолчанию $\pi / 2.0$)

Параметры
[in] angle пороговое значение угла

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

Ссылается на pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::angle_threshold_.

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

angle_threshold_

template<typename PointInT , typename PointNT , typename PointOutT >
float pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::angle_threshold_
protected

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

(по умолчанию $\pi / 2.0$)

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

Используется в pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::getAngleThreshold() и pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::setAngleThreshold().


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

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

Spec-Zone.ru

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