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) |
| Установить количество k ближайших соседей для оценки признаков. Подробнее... |
|
| int | getKSearch () const |
| Получить количество k ближайших соседей, используемых для оценки признаков. Подробнее... |
|
| 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[] для сокращения кода. Подробнее... |
|
Защищенные члены-функции | |
| 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. Подробнее... |
|
Подробное описание
шаблон<typename PointInT, typename PointNT, typename PointOutT>
класс 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:194 pcl::Feature::compute void compute(PointCloudOut &output) Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using th... Definition: feature.hpp:194 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
| используется pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::ConstPtr = shared_ptr<const BoundaryEstimation<PointInT, PointNT, PointOutT> > |
Определение в строке 83 файла boundary.h.
PointCloudOut
| используется pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::PointCloudOut = typename Feature<PointInT, PointOutT>::PointCloudOut |
Определение в строке 96 файла boundary.h.
Ptr
| используется 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.
Ссылка на pcl::Feature< PointInT, PointOutT >::feature_name_.
Документация функций-членов
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 > & | облако, |
| const PointInT & | q_точка, | ||
| const pcl::Indices & | индексы, | ||
| const Eigen::Vector4f & | u, | ||
| const Eigen::Vector4f & | v, | ||
| const float | пороговый_угол | ||
| ) |
Проверка, является ли точка границей в плоском фрагменте спроецированных точек, заданных индексами.
- Примечание
- Система координат u-v-n должна быть вычислена предварительно с помощью getCoordinateSystemOnPlane
- Параметры
-
[вход] облако указатель на входное облако точек [вход] q_точка указатель на точку запроса [вход] индексы оцененные соседние точки точки запроса [вход] u направление u [вход] v направление v [вход] пороговый_угол пороговый угол (по умолчанию )
Определение в строке 62 файла boundary.hpp.
Ссылки на M_PI.
isBoundaryPoint() [2/2]
| bool pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::isBoundaryPoint | ( | const pcl::PointCloud< PointInT > & | облако, |
| int | q_индекс, | ||
| const pcl::Indices & | индексы, | ||
| const Eigen::Vector4f & | u, | ||
| const Eigen::Vector4f & | v, | ||
| const float | пороговый_угол | ||
| ) |
Проверка, является ли точка границей в плоском фрагменте спроецированных точек, заданных индексами.
- Примечание
- Система координат u-v-n должна быть вычислена предварительно с помощью getCoordinateSystemOnPlane
- Параметры
-
[вход] облако указатель на входное облако точек [вход] q_индекс индекс точки запроса в облаке [вход] индексы оцененные соседние точки точки запроса [вход] u направление u [вход] v направление v [вход] пороговый_угол пороговый угол (по умолчанию )
Определение в строке 51 файла boundary.hpp.
Используется в pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >::getBoundaryPoints().
setAngleThreshold()
| inline |
Установить пороговое значение угла (граница принятия решения), которая определяет точки как граничные или обычные.
(по умолчанию )
- Параметры
-
[вход] угол пороговое значение угла
Определение в строке 141 файла boundary.h.
Ссылки на pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::angle_threshold_.
Member Data Documentation
angle_threshold_
| protected |
Пороговое значение угла (граница принятия решения), которая определяет точки как граничные или обычные.
(по умолчанию )
Определение в строке 177 файла boundary.h.
Используется в pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::getAngleThreshold() и pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >::setAngleThreshold().
The documentation for this class was generated from the following files:
- 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