NormalEstimation вычисляет локальные свойства поверхности (нормали и кривизну поверхности) в каждой 3D-точке. Подробнее...
#include <pcl/features/normal_3d.h>
Общедоступные типы | |
| using | Ptr = shared_ptr< NormalEstimation< PointInT, PointOutT > > |
| using | ConstPtr = shared_ptr< const NormalEstimation< PointInT, PointOutT > > |
| using | PointCloudOut = typename Feature< PointInT, PointOutT >::PointCloudOut |
| using | PointCloudConstPtr = typename Feature< PointInT, PointOutT >::PointCloudConstPtr |
|
| |
| 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 |
Общедоступные функции-члены | |
| NormalEstimation () | |
| Пустой конструктор. Подробнее... |
|
| ~NormalEstimation () override=default | |
| Пустой деструктор. Подробнее... |
|
| bool | computePointNormal (const pcl::PointCloud< PointInT > &cloud, const pcl::Indices &indices, Eigen::Vector4f &plane_parameters, float &curvature) |
| Вычисляет аппроксимацию плоскости методом наименьших квадратов для заданного набора точек по их индексам и возвращает оценённые параметры плоскости вместе с кривизной поверхности. Подробнее... |
|
| bool | computePointNormal (const pcl::PointCloud< PointInT > &cloud, const pcl::Indices &indices, float &nx, float &ny, float &nz, float &curvature) |
| Вычисляет аппроксимацию плоскости методом наименьших квадратов для заданного набора точек по их индексам и возвращает оценённые параметры плоскости вместе с кривизной поверхности. Подробнее... |
|
| void | setInputCloud (const PointCloudConstPtr &cloud) override |
| Передаёт указатель на входной набор данных. Подробнее... |
|
| void | setViewPoint (float vpx, float vpy, float vpz) |
| Задаёт точку наблюдения. Подробнее... |
|
| void | getViewPoint (float &vpx, float &vpy, float &vpz) |
| Возвращает точку наблюдения. Подробнее... |
|
| void | useSensorOriginAsViewPoint () |
| Задаёт, следует ли использовать в качестве точки наблюдения начало координат датчика или заданную пользователем точку. Подробнее... |
|
|
| |
| 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 |
| Вычисляет нормали для всех точек, заданных в <setInputCloud (), setIndices ()>, используя поверхность из setSearchSurface () и пространственный локатор из setSearchMethod () Подробнее... |
|
|
| |
| const std::string & | getClassName () const |
| Возвращает строковое представление имени этого класса. Подробнее... |
|
| virtual bool | initCompute () |
| Этот метод следует вызывать перед началом фактических вычислений. Подробнее... |
|
| 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 | vpx_ {0.0f} |
| Значения, описывающие точку обзора (предполагается модель камеры-обскуры). Подробнее... |
|
| float | vpy_ {0.0f} |
| float | vpz_ {0.0f} |
| EIGEN_ALIGN16 Eigen::Matrix3f | covariance_matrix_ |
| Вспомогательное хранилище для матрицы ковариации 3x3 в каждом участке поверхности. Подробнее... |
|
| Eigen::Vector4f | xyz_centroid_ |
| Выровненное по 16 байтам вспомогательное хранилище для центра масс XYZ участка поверхности. Подробнее... |
|
| bool | use_sensor_origin_ {true} |
| Определяет, следует ли использовать начало координат датчика входного облака или заданную пользователем точку обзора. Подробнее... |
|
|
| |
| 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 PointOutT>
class pcl::NormalEstimation< PointInT, PointOutT >
NormalEstimation оценивает локальные свойства поверхности (нормали и кривизну) в каждой 3D-точке.
Если PointOutT задан как pcl::Normal, нормаль сохраняется в первых 3 компонентах (0–2), а кривизна — в компоненте 3.
- Примечание
- Код использует состояние, поскольку предполагается, что этот класс не будет распараллеливаться на нескольких ядрах. Параллельную реализацию см. в NormalEstimationOMP.
Определение в строке 243 файла normal_3d.h.
Документация псевдонимов типов-членов
ConstPtr
| using pcl::NormalEstimation< PointInT, PointOutT >::ConstPtr = shared_ptr<const NormalEstimation<PointInT, PointOutT> > |
Определение в строке 247 файла normal_3d.h.
PointCloudConstPtr
| using pcl::NormalEstimation< PointInT, PointOutT >::PointCloudConstPtr = typename Feature<PointInT, PointOutT>::PointCloudConstPtr |
Определение в строке 258 файла normal_3d.h.
PointCloudOut
| using pcl::NormalEstimation< PointInT, PointOutT >::PointCloudOut = typename Feature<PointInT, PointOutT>::PointCloudOut |
Определение в строке 257 файла normal_3d.h.
Ptr
| using pcl::NormalEstimation< PointInT, PointOutT >::Ptr = shared_ptr<NormalEstimation<PointInT, PointOutT> > |
Определение в строке 246 файла normal_3d.h.
Документация конструкторов и деструкторов
NormalEstimation()
| inline |
Конструктор без параметров.
Определение в строке 261 файла normal_3d.h.
~NormalEstimation()
| overridedefault |
Пустой деструктор.
Документация функций-членов
computeFeature()
| overrideprotectedvirtual |
Вычисляет нормали для всех точек, заданных в <setInputCloud (), setIndices ()>, используя поверхность из setSearchSurface () и пространственный локатор из setSearchMethod ().
- Примечание
- Если найдено недостаточно соседей, значения нормали и кривизны устанавливаются в NaN.
- Параметры
-
output итоговый набор данных — облако точек, содержащее нормали поверхности и кривизну
Реализует pcl::Feature< PointInT, PointOutT >.
Определение в строке 48 файла normal_3d.hpp.
Ссылки: pcl::computePointNormal(), pcl::flipNormalTowardsViewpoint(), pcl::PointCloud< PointT >::is_dense и pcl::isFinite().
computePointNormal() [1/2]
| inline |
Выполняет аппроксимацию плоскости методом наименьших квадратов для заданного набора точек, используя их индексы, и возвращает оценённые параметры плоскости вместе с кривизной поверхности.
- Параметры
-
cloud входное облако точек indices индексы точек облака, которые необходимо использовать plane_parameters параметры плоскости в виде: a, b, c, d (ax + by + cz + d = 0) curvature оценённая кривизна поверхности как мера
Определение в строке 280 файла normal_3d.h.
Использует pcl::computeMeanAndCovarianceMatrix(), pcl::NormalEstimation< PointInT, PointOutT >::covariance_matrix_, pcl::solvePlaneParameters() и pcl::NormalEstimation< PointInT, PointOutT >::xyz_centroid_.
computePointNormal() [2/2]
| inline |
Выполняет аппроксимацию плоскости методом наименьших квадратов для заданного набора точек, используя их индексы, и возвращает оценённые параметры плоскости вместе с кривизной поверхности.
- Параметры
-
cloud входное облако точек indices индексы точек облака, которые необходимо использовать nx результирующая X-компонента нормали плоскости ny результирующая Y-компонента нормали плоскости nz результирующая Z-компонента нормали плоскости curvature оценённая кривизна поверхности как мера
Определение в строке 309 файла normal_3d.h.
Использует pcl::computeMeanAndCovarianceMatrix(), pcl::NormalEstimation< PointInT, PointOutT >::covariance_matrix_, pcl::solvePlaneParameters() и pcl::NormalEstimation< PointInT, PointOutT >::xyz_centroid_.
getViewPoint()
| inline |
Возвращает точку обзора.
- Параметры
-
[out] vpx x-координата точки обзора [out] vpy y-координата точки обзора [out] vpz z-координата точки обзора
- Примечание
- этот метод возвращает текущую точку обзора, используемую для разворота нормалей. Если точка обзора задана вручную с помощью метода setViewPoint, метод возвращает заданные координаты точки обзора. Если задано входное облако, метод возвращает начало координат датчика, в противном случае — начало координат (0, 0, 0)
Определение в строке 362 файла normal_3d.h.
Использует pcl::NormalEstimation< PointInT, PointOutT >::vpx_, pcl::NormalEstimation< PointInT, PointOutT >::vpy_ и pcl::NormalEstimation< PointInT, PointOutT >::vpz_.
setInputCloud()
| inlineoverride |
Передаёт указатель на входной набор данных.
- Параметры
-
cloud константный указатель boost на сообщение PointCloud
Определение в строке 328 файла normal_3d.h.
Использует pcl::PCLBase< PointInT >::input_, pcl::NormalEstimation< PointInT, PointOutT >::use_sensor_origin_, pcl::NormalEstimation< PointInT, PointOutT >::vpx_, pcl::NormalEstimation< PointInT, PointOutT >::vpy_ и pcl::NormalEstimation< PointInT, PointOutT >::vpz_.
Используется в pcl::UnaryClassifier< PointT >::computeFPFH(), pcl::Hough3DGrouping< PointModelT, PointSceneT, PointModelRfT, PointSceneRfT >::computeRf(), pcl::HarrisKeypoint6D< PointInT, PointOutT, NormalT >::detectKeypoints(), pcl::gpu::DataSource::estimateNormals(), pcl::HarrisKeypoint3D< PointInT, PointOutT, NormalT >::initCompute(), pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >::initCompute() и pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::initCompute().
setViewPoint()
| inline |
Задаёт точку обзора.
- Параметры
-
vpx координата X точки обзора vpy координата Y точки обзора vpz координата Z точки обзора
Определение в строке 345 файла normal_3d.h.
Использует pcl::NormalEstimation< PointInT, PointOutT >::use_sensor_origin_, pcl::NormalEstimation< PointInT, PointOutT >::vpx_, pcl::NormalEstimation< PointInT, PointOutT >::vpy_ и pcl::NormalEstimation< PointInT, PointOutT >::vpz_.
useSensorOriginAsViewPoint()
| inline |
задаёт, следует ли использовать начало координат датчика или указанную пользователем точку обзора.
После вызова этого метода для оценки нормалей используется начало координат датчика входного облака. Чтобы использовать заданную пользователем точку обзора, вызовите метод setViewPoint
Определение в строке 374 файла normal_3d.h.
Использует pcl::PCLBase< PointInT >::input_, pcl::NormalEstimation< PointInT, PointOutT >::use_sensor_origin_, pcl::NormalEstimation< PointInT, PointOutT >::vpx_, pcl::NormalEstimation< PointInT, PointOutT >::vpy_ и pcl::NormalEstimation< PointInT, PointOutT >::vpz_.
Документация данных-членов
covariance_matrix_
| protected |
Буфер для хранения матрицы ковариации 3×3 каждого участка поверхности.
Определение в строке 405 файла normal_3d.h.
Используется в pcl::NormalEstimation< PointInT, PointOutT >::computePointNormal().
use_sensor_origin_
| protected |
указывает, следует ли использовать начало координат датчика входного облака или заданную пользователем точку обзора.
Определение в строке 411 файла normal_3d.h.
Используется в pcl::NormalEstimation< PointInT, PointOutT >::setInputCloud(), pcl::NormalEstimation< PointInT, PointOutT >::setViewPoint() и pcl::NormalEstimation< PointInT, PointOutT >::useSensorOriginAsViewPoint().
vpx_
| protected |
Значения, задающие точку обзора (предполагается модель камеры-обскуры).
Для задания индивидуальных точек обзора для каждой точки унаследуйте класс NormalEstimation и реализуйте собственный метод computeFeature (). По умолчанию точка обзора равна 0,0,0.
Определение в строке 402 файла normal_3d.h.
Используется в pcl::NormalEstimation< PointInT, PointOutT >::getViewPoint(), pcl::NormalEstimation< PointInT, PointOutT >::setInputCloud(), pcl::NormalEstimation< PointInT, PointOutT >::setViewPoint() и pcl::NormalEstimation< PointInT, PointOutT >::useSensorOriginAsViewPoint().
vpy_
|
Определение в строке 402 файла normal_3d.h.
Используется в pcl::NormalEstimation< PointInT, PointOutT >::getViewPoint(), pcl::NormalEstimation< PointInT, PointOutT >::setInputCloud(), pcl::NormalEstimation< PointInT, PointOutT >::setViewPoint() и pcl::NormalEstimation< PointInT, PointOutT >::useSensorOriginAsViewPoint().
vpz_
|
Определение в строке 402 файла normal_3d.h.
Используется в pcl::NormalEstimation< PointInT, PointOutT >::getViewPoint(), pcl::NormalEstimation< PointInT, PointOutT >::setInputCloud(), pcl::NormalEstimation< PointInT, PointOutT >::setViewPoint() и pcl::NormalEstimation< PointInT, PointOutT >::useSensorOriginAsViewPoint().
xyz_centroid_
| protected |
Буфер с выравниванием 16 байт для хранения XYZ-координат центра тяжести участка поверхности.
Определение в строке 408 файла normal_3d.h.
Используется в pcl::NormalEstimation< PointInT, PointOutT >::computePointNormal().
Документация этого класса была создана на основе следующих файлов:
- pcl/features/normal_3d.h
- pcl/features/impl/normal_3d.hpp
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_normal_estimation.html