PrincipalCurvaturesEstimation оценивает направления (собственные векторы) и величины (собственные значения) главных кривизн поверхности для заданного набора данных облака точек, содержащего точки и нормали. Подробнее...
#include <pcl/features/principal_curvatures.h>
Открытые типы | |
| using | Ptr = shared_ptr< PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT > > |
| using | ConstPtr = shared_ptr< const PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT > > |
| using | PointCloudOut = typename Feature< PointInT, PointOutT >::PointCloudOut |
| using | PointCloudIn = pcl::PointCloud< PointInT > |
|
| |
| using | PointCloudN = pcl::PointCloud< PointNT > |
| using | PointCloudNPtr = typename PointCloudN::Ptr |
| using | PointCloudNConstPtr = typename PointCloudN::ConstPtr |
| using | Ptr = shared_ptr< FeatureFromNormals< PointInT, PointNT, pcl::PrincipalCurvatures > > |
| using | ConstPtr = shared_ptr< const FeatureFromNormals< PointInT, PointNT, pcl::PrincipalCurvatures > > |
|
| |
| 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 |
Открытые функции-члены | |
| PrincipalCurvaturesEstimation (unsigned int nr_threads=1, int chunk_size=256) | |
| Инициализирует планировщик и задаёт количество используемых потоков. Подробнее... |
|
| void | computePointPrincipalCurvatures (const pcl::PointCloud< PointNT > &normals, int p_idx, const pcl::Indices &indices, float &pcx, float &pcy, float &pcz, float &pc1, float &pc2) |
| Выполняет анализ главных компонент (PCA) нормалей точек участка поверхности в касательной плоскости к нормали заданной точки и возвращает главную кривизну (собственный вектор, соответствующий максимальному собственному значению), а также максимальное (pc1) и минимальное (pc2) собственные значения. Подробнее... |
|
| void | setNumberOfThreads (unsigned int nr_threads) |
| Инициализирует планировщик и задаёт количество используемых потоков. Подробнее... |
|
|
| |
| 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 operator[] для сокращения кода. Подробнее... |
|
Защищённые функции-члены | |
| void | computeFeature (PointCloudOut &output) override |
| Оценить главную кривизну (собственный вектор, соответствующий максимальному собственному значению), а также максимальное (pc1) и минимальное (pc2) собственные значения для всех точек, заданных в <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 () |
| Этот метод следует вызывать после завершения фактических вычислений. Подробнее... |
|
Защищённые атрибуты | |
| unsigned int | threads_ |
| Количество потоков, которые должен использовать планировщик. Подробнее... |
|
| int | chunk_size_ |
| Размер блока для (динамического) планирования. Подробнее... |
|
|
| |
| 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 = pcl::PrincipalCurvatures>
class pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT >
PrincipalCurvaturesEstimation оценивает направления (собственные векторы) и величины (собственные значения) главных кривизн поверхности для заданного набора данных облака точек, содержащего точки и нормали.
Результат содержит главную кривизну (собственный вектор, соответствующий максимальному собственному значению), а также максимальное (pc1) и минимальное (pc2) собственные значения. Поддерживается параллельное выполнение с помощью OpenMP.
Рекомендуемый тип PointOutT — pcl::PrincipalCurvatures.
Определение в строке 58 файла principal_curvatures.h.
Описание псевдонимов типов-членов
ConstPtr
| using pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT >::ConstPtr = shared_ptr<const PrincipalCurvaturesEstimation<PointInT, PointNT, PointOutT> > |
Определение в строке 62 файла principal_curvatures.h.
PointCloudIn
| using pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT >::PointCloudIn = pcl::PointCloud<PointInT> |
Определение в строке 73 файла principal_curvatures.h.
PointCloudOut
| using pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT >::PointCloudOut = typename Feature<PointInT, PointOutT>::PointCloudOut |
Определение в строке 72 файла principal_curvatures.h.
Ptr
| using pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT >::Ptr = shared_ptr<PrincipalCurvaturesEstimation<PointInT, PointNT, PointOutT> > |
Определение в строке 61 файла principal_curvatures.h.
Описание конструкторов и деструктора
PrincipalCurvaturesEstimation()
| inline |
Инициализировать планировщик и задать количество используемых потоков.
- Параметры
-
nr_threads количество используемых аппаратных потоков (значение 0 задаёт автоматический режим) chunk_size PCL будет использовать динамическое планирование с этим размером блока. Слишком малое значение приведёт к увеличению накладных расходов на распараллеливание. Слишком большое значение ухудшит балансировку нагрузки между потоками.
Определение в строке 81 файла principal_curvatures.h.
Ссылки: pcl::Feature< PointInT, PointOutT >::feature_name_ и pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT >::setNumberOfThreads().
Описание функций-членов
computeFeature()
| overrideprotectedvirtual |
Оценить главную кривизну (собственный вектор, соответствующий максимальному собственному значению), а также максимальное (pc1) и минимальное (pc2) собственные значения для всех точек, заданных в <setInputCloud (), setIndices ()>, используя поверхность из setSearchSurface () и пространственный локатор из setSearchMethod ()
- Параметры
-
[out] output результирующий набор данных облака точек, содержащий оценки главной кривизны
Реализует pcl::Feature< PointInT, PointOutT >.
Определение в строке 130 файла principal_curvatures.hpp.
Ссылки: pcl::PointCloud< PointT >::is_dense и pcl::isFinite().
computePointPrincipalCurvatures()
| void pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT >::computePointPrincipalCurvatures | ( | const pcl::PointCloud< PointNT > & | normals, |
| int | p_idx, | ||
| const pcl::Indices & | indices, | ||
| float & | pcx, | ||
| float & | pcy, | ||
| float & | pcz, | ||
| float & | pc1, | ||
| float & | pc2 | ||
| ) |
Выполняет анализ главных компонент (PCA) нормалей точек участка поверхности в касательной плоскости заданной нормали точки и возвращает главную кривизну (собственный вектор, соответствующий максимальному собственному значению), а также максимальное (pc1) и минимальное (pc2) собственные значения.
- Параметры
-
[in] normals нормали облака точек [in] p_idx точка запроса, для которой была оценена плоскость методом наименьших квадратов [in] indices индексы облака точек, которые необходимо использовать [out] pcx направление главной кривизны по оси X [out] pcy направление главной кривизны по оси Y [out] pcz направление главной кривизны по оси Z [out] pc1 максимальное собственное значение кривизны [out] pc2 минимальное собственное значение кривизны
Определение в строке 67 файла principal_curvatures.hpp.
Ссылки: pcl::computeCorrespondingEigenVector() и pcl::eigen33().
setNumberOfThreads()
| void pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT >::setNumberOfThreads | ( | unsigned int | nr_threads | ) |
Инициализирует планировщик и задаёт количество используемых потоков.
По умолчанию выполнение происходит в одном потоке.
- Параметры
-
nr_threads количество используемых аппаратных потоков (значение 0 задаёт автоматический выбор)
Определение в строке 50 файла principal_curvatures.hpp.
Используется в pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT >::PrincipalCurvaturesEstimation().
Документация данных-членов
chunk_size_
| protected |
Размер блока для (динамического) планирования.
Определение в строке 118 файла principal_curvatures.h.
threads_
| protected |
Количество потоков, которое должен использовать планировщик.
Определение в строке 115 файла principal_curvatures.h.
Документация этого класса создана на основе следующих файлов:
- pcl/features/principal_curvatures.h
- pcl/features/impl/principal_curvatures.hpp
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_principal_curvatures_estimation.html