Spec-Zone.ru › PointCloudLibrary

NormalEstimation вычисляет локальные свойства поверхности (нормали и кривизну поверхности) в каждой 3D-точке. Подробнее...

#include <pcl/features/normal_3d.h>

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

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

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
- Общедоступные типы, унаследованные от 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

Общедоступные функции-члены

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 ()
Задаёт, следует ли использовать в качестве точки наблюдения начало координат датчика или заданную пользователем точку. Подробнее...
- Общедоступные функции-члены, унаследованные от 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)
Задаёт количество ближайших соседей k, используемых для оценки признаков. Подробнее...
int getKSearch () const
Возвращает количество ближайших соседей k, используемых для оценки признаков. Подробнее...
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::Feature< PointInT, PointOutT >
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. Подробнее...
- Защищённые функции-члены, унаследованные от pcl::PCLBase< PointInT >
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}
Определяет, следует ли использовать начало координат датчика входного облака или заданную пользователем точку обзора. Подробнее...
- Защищённые атрибуты, унаследованные от 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 PointOutT>
class pcl::NormalEstimation< PointInT, PointOutT >

NormalEstimation оценивает локальные свойства поверхности (нормали и кривизну) в каждой 3D-точке.

Если PointOutT задан как pcl::Normal, нормаль сохраняется в первых 3 компонентах (0–2), а кривизна — в компоненте 3.

Примечание
Код использует состояние, поскольку предполагается, что этот класс не будет распараллеливаться на нескольких ядрах. Параллельную реализацию см. в NormalEstimationOMP.
Автор
Radu B. Rusu

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

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

ConstPtr

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

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

PointCloudConstPtr

template<typename PointInT , typename PointOutT >
using pcl::NormalEstimation< PointInT, PointOutT >::PointCloudConstPtr = typename Feature<PointInT, PointOutT>::PointCloudConstPtr

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

PointCloudOut

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

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

Ptr

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

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

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

NormalEstimation()

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

Конструктор без параметров.

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

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

~NormalEstimation()

template<typename PointInT , typename PointOutT >
pcl::NormalEstimation< PointInT, PointOutT >::~NormalEstimation ( )
overridedefault

Пустой деструктор.

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

computeFeature()

template<typename PointInT , typename PointOutT >
void pcl::NormalEstimation< PointInT, PointOutT >::computeFeature ( PointCloudOut & output )
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]

template<typename PointInT , typename PointOutT >
bool pcl::NormalEstimation< PointInT, PointOutT >::computePointNormal ( const pcl::PointCloud< PointInT > & cloud,
const pcl::Indices & indices,
Eigen::Vector4f & plane_parameters,
float & curvature
)
inline

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

Параметры
cloud входное облако точек
indices индексы точек облака, которые необходимо использовать
plane_parameters параметры плоскости в виде: a, b, c, d (ax + by + cz + d = 0)
curvature оценённая кривизна поверхности как мера

\[ \lambda_0 / (\lambda_0 + \lambda_1 + \lambda_2) \]

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

Использует pcl::computeMeanAndCovarianceMatrix(), pcl::NormalEstimation< PointInT, PointOutT >::covariance_matrix_, pcl::solvePlaneParameters() и pcl::NormalEstimation< PointInT, PointOutT >::xyz_centroid_.

computePointNormal() [2/2]

template<typename PointInT , typename PointOutT >
bool pcl::NormalEstimation< PointInT, PointOutT >::computePointNormal ( const pcl::PointCloud< PointInT > & cloud,
const pcl::Indices & indices,
float & nx,
float & ny,
float & nz,
float & curvature
)
inline

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

Параметры
cloud входное облако точек
indices индексы точек облака, которые необходимо использовать
nx результирующая X-компонента нормали плоскости
ny результирующая Y-компонента нормали плоскости
nz результирующая Z-компонента нормали плоскости
curvature оценённая кривизна поверхности как мера

\[ \lambda_0 / (\lambda_0 + \lambda_1 + \lambda_2) \]

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

Использует pcl::computeMeanAndCovarianceMatrix(), pcl::NormalEstimation< PointInT, PointOutT >::covariance_matrix_, pcl::solvePlaneParameters() и pcl::NormalEstimation< PointInT, PointOutT >::xyz_centroid_.

getViewPoint()

template<typename PointInT , typename PointOutT >
void pcl::NormalEstimation< PointInT, PointOutT >::getViewPoint ( float & vpx,
float & vpy,
float & vpz
)
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()

template<typename PointInT , typename PointOutT >
void pcl::NormalEstimation< PointInT, PointOutT >::setInputCloud ( const PointCloudConstPtr & cloud )
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()

template<typename PointInT , typename PointOutT >
void pcl::NormalEstimation< PointInT, PointOutT >::setViewPoint ( float vpx,
float vpy,
float vpz
)
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()

template<typename PointInT , typename PointOutT >
void pcl::NormalEstimation< PointInT, PointOutT >::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_

template<typename PointInT , typename PointOutT >
EIGEN_ALIGN16 Eigen::Matrix3f pcl::NormalEstimation< PointInT, PointOutT >::covariance_matrix_
protected

Буфер для хранения матрицы ковариации 3×3 каждого участка поверхности.

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

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

use_sensor_origin_

template<typename PointInT , typename PointOutT >
bool pcl::NormalEstimation< PointInT, PointOutT >::use_sensor_origin_ {true}
protected

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

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

Используется в pcl::NormalEstimation< PointInT, PointOutT >::setInputCloud(), pcl::NormalEstimation< PointInT, PointOutT >::setViewPoint() и pcl::NormalEstimation< PointInT, PointOutT >::useSensorOriginAsViewPoint().

vpx_

template<typename PointInT , typename PointOutT >
float pcl::NormalEstimation< PointInT, PointOutT >::vpx_ {0.0f}
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_

template<typename PointInT , typename PointOutT >
float pcl::NormalEstimation< PointInT, PointOutT >::vpy_ {0.0f}

Определение в строке 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_

template<typename PointInT , typename PointOutT >
float pcl::NormalEstimation< PointInT, PointOutT >::vpz_ {0.0f}

Определение в строке 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_

template<typename PointInT , typename PointOutT >
Eigen::Vector4f pcl::NormalEstimation< PointInT, PointOutT >::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

Spec-Zone.ru

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