BoundaryEstimation определяет, лежит ли набор точек на границах поверхности, используя угловой критерий. Подробнее...
#include <pcl/features/boundary.h>
Общедоступные типы | |
| using | Ptr = shared_ptr< BoundaryEstimation< PointInT, PointNT, PointOutT > > |
| using | ConstPtr = shared_ptr< const BoundaryEstimation< PointInT, PointNT, PointOutT > > |
| using | PointCloudOut = typename Feature< PointInT, PointOutT >::PointCloudOut |
|
| |
| 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 > > |
|
| |
| 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 > &)> |
|
| |
| 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, лежащую в плоскости, заданной её нормалью. Подробнее... |
|
|
| |
| FeatureFromNormals () | |
| Пустой конструктор. Подробнее... |
|
| void | setInputNormals (const PointCloudNConstPtr &normals) |
| Задать указатель на входной набор данных, содержащий нормали точек набора данных XYZ. Подробнее... |
|
| PointCloudNConstPtr | getInputNormals () const |
| Получить указатель на нормали облака входных точек XYZ. Подробнее... |
|
|
| |
| 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 (). Подробнее... |
|
|
| |
| 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 () Подробнее... |
|
|
| |
| virtual bool | initCompute () |
| Этот метод следует вызывать перед началом фактических вычислений. Подробнее... |
|
|
| |
| 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. Подробнее... |
|
|
| |
| bool | initCompute () |
| Этот метод следует вызывать перед началом фактических вычислений. Подробнее... |
|
| bool | deinitCompute () |
| Этот метод следует вызывать после завершения фактических вычислений. Подробнее... |
|
Защищённые атрибуты | |
| float | angle_threshold_ |
| Граница принятия решения (угловой порог), определяющая, считать ли точки граничными или обычными. Подробнее... |
|
|
| |
| PointCloudNConstPtr | normals_ |
| Указатель на входной набор данных, содержащий нормали точек набора данных XYZ. Подробнее... |
|
|
| |
| 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. Подробнее... |
|
|
| |
| 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.
Определение в строке 79 файла boundary.h.
Документация псевдонимов типов-членов
ConstPtr
| using pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::ConstPtr = shared_ptr<const BoundaryEstimation<PointInT, PointNT, PointOutT> > |
Определение в строке 83 файла boundary.h.
PointCloudOut
| using pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::PointCloudOut = typename Feature<PointInT, PointOutT>::PointCloudOut |
Определение в строке 96 файла boundary.h.
Ptr
| using pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::Ptr = shared_ptr<BoundaryEstimation<PointInT, PointNT, PointOutT> > |
Определение в строке 82 файла boundary.h.
Документация конструкторов и деструкторов
BoundaryEstimation()
| inline |
Пустой конструктор.
Угловой порог angle_threshold_ устанавливается равным M_PI / 2.0
Определение в строке 102 файла boundary.h.
Документация функций-членов
computeFeature()
| overrideprotectedvirtual |
Определить, лежит ли набор точек на границах поверхности, используя угловой критерий для всех точек, заданных в <setInputCloud (), setIndices ()>, поверхность из setSearchSurface () и пространственный локатор из setSearchMethod ()
- Параметры
-
[out] output результирующий набор данных облака точек, содержащий оценки граничных точек
Реализует pcl::Feature< PointInT, PointOutT >.
Определение в строке 116 файла boundary.hpp.
Ссылки: pcl::isFinite().
getAngleThreshold()
| inline |
Получить заданную пользователем границу принятия решения (угловой порог).
Определение в строке 148 файла boundary.h.
Ссылки: pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::angle_threshold_.
getCoordinateSystemOnPlane()
| 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]
| 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 пороговый угол (по умолчанию )
Определение в строке 62 файла boundary.hpp.
Ссылается на M_PI.
isBoundaryPoint() [2/2]
| 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 пороговый угол (по умолчанию )
Определение в строке 51 файла boundary.hpp.
Используется в pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >::getBoundaryPoints().
setAngleThreshold()
| inline |
Задает пороговое значение угла, определяющее, являются ли точки граничными или обычными.
(по умолчанию )
- Параметры
-
[in] angle пороговое значение угла
Определение в строке 141 файла boundary.h.
Ссылается на pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::angle_threshold_.
Документация данных-членов
angle_threshold_
| protected |
Пороговое значение угла, определяющее, являются ли точки граничными или обычными.
(по умолчанию )
Определение в строке 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