Оценка нормалей поверхности для упорядоченных данных с использованием интегральных изображений. Подробнее...
#include <pcl/features/integral_image_normal.h>
Общедоступные типы | |
| enum | BorderPolicy { BORDER_POLICY_IGNORE , BORDER_POLICY_MIRROR } |
| Различные способы обработки границ. Подробнее... |
|
| enum | NormalEstimationMethod { COVARIANCE_MATRIX , AVERAGE_3D_GRADIENT , AVERAGE_DEPTH_CHANGE , SIMPLE_3D_GRADIENT } |
| Различные методы оценки нормалей. Подробнее... |
|
| using | Ptr = shared_ptr< IntegralImageNormalEstimation< PointInT, PointOutT > > |
| using | ConstPtr = shared_ptr< const IntegralImageNormalEstimation< PointInT, PointOutT > > |
| using | PointCloudIn = typename Feature< PointInT, PointOutT >::PointCloudIn |
| using | PointCloudOut = typename Feature< PointInT, PointOutT >::PointCloudOut |
|
| |
| 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 |
Открытые функции-члены | |
| IntegralImageNormalEstimation () | |
| Конструктор. Подробнее... |
|
| ~IntegralImageNormalEstimation () override | |
| Деструктор. Подробнее... |
|
| void | setRectSize (const int width, const int height) |
| Задает размер областей, учитываемых при оценке нормалей. Подробнее... |
|
| void | setBorderPolicy (const BorderPolicy border_policy) |
| Задает политику обработки границ. Подробнее... |
|
| void | computePointNormal (const int pos_x, const int pos_y, const unsigned point_index, PointOutT &normal) |
| Вычисляет нормаль в указанной позиции. Подробнее... |
|
| void | computePointNormalMirror (const int pos_x, const int pos_y, const unsigned point_index, PointOutT &normal) |
| Вычисляет нормаль в указанной позиции, используя зеркальное отражение для обработки границ. Подробнее... |
|
| void | setMaxDepthChangeFactor (float max_depth_change_factor) |
| Порог изменения глубины для вычисления границ объектов. Подробнее... |
|
| void | setNormalSmoothingSize (float normal_smoothing_size) |
| Задает размер сглаживания нормалей. Подробнее... |
|
| void | setNormalEstimationMethod (NormalEstimationMethod normal_estimation_method) |
| Задает метод оценки нормалей. Подробнее... |
|
| void | setDepthDependentSmoothing (bool use_depth_dependent_smoothing) |
| Задает, следует ли использовать сглаживание, зависящее от глубины. Подробнее... |
|
| void | setInputCloud (const typename PointCloudIn::ConstPtr &cloud) override |
| Задает указатель на входной набор данных (переопределяет метод PCLBase::setInputCloud) Подробнее... |
|
| float * | getDistanceMap () |
| Возвращает указатель на карту расстояний, вычисленную внутри класса. Подробнее... |
|
| 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) |
| Задает количество ближайших соседей, используемых для оценки признаков. Подробнее... |
|
| 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 |
| Вычисляет нормали для всего облака или только для indices_, если этот параметр задан. Подробнее... |
|
| void | computeFeatureFull (const float *distance_map, const float &bad_point, PointCloudOut &output) |
| Вычисляет нормали для всего облака. Подробнее... |
|
| void | computeFeaturePart (const float *distance_map, const float &bad_point, PointCloudOut &output) |
| Вычисляет нормали для части облака, заданной параметром indices_. Подробнее... |
|
| void | initData () |
| Инициализирует структуры данных в соответствии с выбранным методом оценки нормалей. Подробнее... |
|
|
| |
| 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 () |
| Этот метод следует вызывать после завершения фактических вычислений. Подробнее... |
|
Дополнительные унаследованные члены | |
|
| |
| std::string | feature_name_ |
| Имя признака. Подробнее... |
|
| SearchMethodSurface | search_method_surface_ |
| Шаблон метода поиска точек. Подробнее... |
|
| PointCloudInConstPtr | surface_ |
| Входное облако точек, описывающее поверхность, используемую для поиска ближайших соседей. Подробнее... |
|
| KdTreePtr | tree_ |
| Указатель на объект пространственного поиска. Подробнее... |
|
| double | search_parameter_ |
| Используемый параметр поиска (либо search_radius_, либо k_). Подробнее... |
|
| double | search_radius_ |
| Радиус поиска ближайших соседей для каждой точки. Подробнее... |
|
| int | k_ |
| Количество ближайших соседей, используемых для каждой точки. Подробнее... |
|
| bool | fake_surface_ |
| Если поверхность не задана, в качестве неё используется входное облако PointCloud. Подробнее... |
|
|
| |
| PointCloudConstPtr | input_ |
| Входной набор данных облака точек. Подробнее... |
|
| IndicesPtr | indices_ |
| Указатель на вектор используемых индексов точек. Подробнее... |
|
| bool | use_indices_ |
| Установите значение true, если используются индексы точек. Подробнее... |
|
| bool | fake_indices_ |
| Если набор индексов не задан, создаётся фиктивный набор индексов, соответствующий входному PointCloud. Подробнее... |
|
Подробное описание
template<typename PointInT, typename PointOutT>
class pcl::IntegralImageNormalEstimation< PointInT, PointOutT >
Оценка нормалей поверхности для упорядоченных данных с использованием интегральных изображений.
For detailed information about this method see: S. Holzer and R. B. Rusu and M. Dixon and S. Gedikli and N. Navab, Adaptive Neighborhood Selection for Real-Time Surface Normal Estimation from Organized Point Cloud Data Using Integral Images, IROS 2012. D. Holz, S. Holzer, R. B. Rusu, and S. Behnke (2011, July). Real-Time Plane Segmentation using RGB-D Cameras. In Proceedings of the 15th RoboCup International Symposium, Istanbul, Turkey. http://www.ais.uni-bonn.de/~holz/papers/holz_2011_robocup.pdf
Определение в строке 65 файла integral_image_normal.h.
Документация по псевдонимам типов-членов
ConstPtr
| using pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::ConstPtr = shared_ptr<const IntegralImageNormalEstimation<PointInT, PointOutT> > |
Определение в строке 75 файла integral_image_normal.h.
PointCloudIn
| using pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::PointCloudIn = typename Feature<PointInT, PointOutT>::PointCloudIn |
Определение в строке 103 файла integral_image_normal.h.
PointCloudOut
| using pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::PointCloudOut = typename Feature<PointInT, PointOutT>::PointCloudOut |
Определение в строке 104 файла integral_image_normal.h.
Ptr
| using pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::Ptr = shared_ptr<IntegralImageNormalEstimation<PointInT, PointOutT> > |
Определение в строке 74 файла integral_image_normal.h.
Документация по перечислениям-членам
BorderPolicy
| enum pcl::IntegralImageNormalEstimation::BorderPolicy |
Различные способы обработки границ.
| Элемент перечисления | |
|---|---|
| BORDER_POLICY_IGNORE | |
| BORDER_POLICY_MIRROR | |
Определение в строке 78 файла integral_image_normal.h.
NormalEstimationMethod
| enum pcl::IntegralImageNormalEstimation::NormalEstimationMethod |
Различные методы оценки нормалей.
- COVARIANCE_MATRIX — создаёт 9 интегральных изображений для вычисления нормали в заданной точке по ковариационной матрице её локального окружения.
- AVERAGE_3D_GRADIENT — создаёт 6 интегральных изображений для вычисления сглаженных горизонтального и вертикального 3D-градиентов, а затем вычисляет нормали как векторное произведение этих градиентов.
- AVERAGE_DEPTH_CHANGE — создаёт только одно интегральное изображение и вычисляет нормали по средним изменениям глубины.
| Элемент перечисления | |
|---|---|
| COVARIANCE_MATRIX | |
| AVERAGE_3D_GRADIENT | |
| AVERAGE_DEPTH_CHANGE | |
| SIMPLE_3D_GRADIENT | |
Определение в строке 95 файла integral_image_normal.h.
Документация по конструкторам и деструкторам
IntegralImageNormalEstimation()
| inline |
Конструктор.
Определение в строке 107 файла integral_image_normal.h.
Ссылки: pcl::Feature< PointInT, PointOutT >::feature_name_, pcl::Feature< PointInT, PointOutT >::k_ и pcl::Feature< PointInT, PointOutT >::tree_.
~IntegralImageNormalEstimation()
| override |
Деструктор.
Определение в строке 46 файла integral_image_normal.hpp.
Документация по функциям-членам
computeFeature()
| overrideprotectedvirtual |
Вычисляет нормали для всего облака или только для indices_, если этот параметр задан.
- Параметры
-
[out] output вычисленные нормали
Реализует pcl::Feature< PointInT, PointOutT >.
Определение в строке 729 файла integral_image_normal.hpp.
Ссылки: pcl::PointCloud< PointT >::sensor_orientation_ и pcl::PointCloud< PointT >::sensor_origin_.
computeFeatureFull()
| protected |
Вычисляет нормали для всего облака.
- Параметры
-
[in] distance_map карта расстояний [in] bad_point константа, присваиваемая недопустимым компонентам нормали [out] output результирующие нормали
Определение в строке 836 файла integral_image_normal.hpp.
Ссылки: pcl::computePointNormal(), pcl::PointCloud< PointT >::is_dense и pcl::PointCloud< PointT >::width.
computeFeaturePart()
| protected |
Вычисляет нормали для части облака, заданной параметром indices_.
- Параметры
-
[in] distance_map карта расстояний [in] bad_point константа, присваиваемая недопустимым компонентам нормали [out] output результирующие нормали
Определение в строке 1025 файла integral_image_normal.hpp.
Ссылки: pcl::computePointNormal(), pcl::PointCloud< PointT >::is_dense и pcl::PointCloud< PointT >::width.
computePointNormal()
| void pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::computePointNormal | ( | const int | pos_x, |
| const int | pos_y, | ||
| const unsigned | point_index, | ||
| PointOutT & | normal | ||
| ) |
Вычисляет нормаль в указанной позиции.
- Параметры
-
[in] pos_x позиция x (пиксель) [in] pos_y позиция y (пиксель) [in] point_index индекс позиции точки [out] normal выходная оцененная нормаль
Определение в строке 206 файла integral_image_normal.hpp.
Ссылки: pcl::eigen33(), pcl::flipNormalTowardsViewpoint(), pcl::IntegralImage2D< DataType, Dimension >::getFirstOrderSum() и pcl::IntegralImage2D< DataType, Dimension >::getSecondOrderSum().
computePointNormalMirror()
| void pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::computePointNormalMirror | ( | const int | pos_x, |
| const int | pos_y, | ||
| const unsigned | point_index, | ||
| PointOutT & | normal | ||
| ) |
Вычисляет нормаль в указанной позиции, используя зеркальное отражение для обработки границ.
- Параметры
-
[in] pos_x позиция x (пиксель) [in] pos_y позиция y (пиксель) [in] point_index индекс позиции точки [out] normal выходная оцененная нормаль
Определение в строке 461 файла integral_image_normal.hpp.
Ссылки: pcl::eigen33(), pcl::flipNormalTowardsViewpoint() и pcl::IntegralImage2D< DataType, Dimension >::getFirstOrderSumSE().
getDistanceMap()
| inline |
Возвращает указатель на карту расстояний, вычисленную внутри класса.
Определение в строке 240 файла integral_image_normal.h.
getViewPoint()
| inline |
Возвращает точку обзора.
- Параметры
-
[out] vpx x-координата точки обзора [out] vpy y-координата точки обзора [out] vpz z-координата точки обзора
- Примечание
- Этот метод возвращает точку обзора, используемую в данный момент для разворота нормалей. Если точка обзора задана вручную с помощью метода setViewPoint, этот метод вернёт заданные координаты точки обзора. Если задано входное облако, метод вернёт начало координат датчика; в противном случае он вернёт начало координат (0, 0, 0)
Определение в строке 268 файла integral_image_normal.h.
initData()
| protected |
Инициализирует структуры данных в соответствии с выбранным методом оценки нормалей.
Определение в строке 56 файла integral_image_normal.hpp.
Используется в pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::setInputCloud().
setBorderPolicy()
| inline |
Задаёт способ обработки границ.
- Параметры
-
[in] border_policy способ обработки границ.
Определение в строке 135 файла integral_image_normal.h.
setDepthDependentSmoothing()
| inline |
Задаёт, следует ли использовать сглаживание, зависящее от глубины.
- Параметры
-
[in] use_depth_dependent_smoothing указывает, зависит ли сглаживание от глубины
Определение в строке 206 файла integral_image_normal.h.
setInputCloud()
| inlineoverride |
Передаёт указатель на входной набор данных (переопределяет метод PCLBase::setInputCloud)
- Параметры
-
[in] cloud константный разделяемый указатель boost на сообщение PointCloud
Определение в строке 215 файла integral_image_normal.h.
Ссылки: pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::initData() и pcl::PCLBase< PointInT >::input_.
Используется в pcl::HarrisKeypoint6D< PointInT, PointOutT, NormalT >::detectKeypoints(), pcl::HarrisKeypoint3D< PointInT, PointOutT, NormalT >::initCompute(), pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >::initCompute(), pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::initCompute() и pcl::TrajkovicKeypoint3D< PointInT, PointOutT, NormalT >::initCompute().
setMaxDepthChangeFactor()
| inline |
Порог изменения глубины для вычисления границ объектов.
- Параметры
-
[in] max_depth_change_factor порог изменения глубины для вычисления границ объектов на основе изменений глубины
Определение в строке 163 файла integral_image_normal.h.
setNormalEstimationMethod()
| inline |
Задаёт метод оценки нормалей.
В настоящее время реализованы следующие алгоритмы:
- COVARIANCE_MATRIX — создаёт 9 интегральных изображений для вычисления нормали в заданной точке по ковариационной матрице её локального окружения.
- AVERAGE_3D_GRADIENT — создаёт 6 интегральных изображений для вычисления сглаженных версий горизонтального и вертикального 3D-градиентов и вычисляет нормали с помощью векторного произведения этих градиентов.
- AVERAGE_DEPTH_CHANGE — создаёт только одно интегральное изображение и вычисляет нормали по средним изменениям глубины.
- Параметры
-
[in] normal_estimation_method метод, используемый для оценки нормалей
Определение в строке 197 файла integral_image_normal.h.
Используется в pcl::HarrisKeypoint6D< PointInT, PointOutT, NormalT >::detectKeypoints(), pcl::HarrisKeypoint3D< PointInT, PointOutT, NormalT >::initCompute(), pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >::initCompute(), pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::initCompute() и pcl::TrajkovicKeypoint3D< PointInT, PointOutT, NormalT >::initCompute().
setNormalSmoothingSize()
| inline |
Задаёт размер области сглаживания нормалей.
- Параметры
-
[in] normal_smoothing_size коэффициент, влияющий на размер области, используемой для сглаживания нормалей (зависит от глубины, если useDepthDependentSmoothing имеет значение true)
Определение в строке 173 файла integral_image_normal.h.
Ссылки: pcl::Feature< PointInT, PointOutT >::feature_name_.
Используется в pcl::HarrisKeypoint6D< PointInT, PointOutT, NormalT >::detectKeypoints(), pcl::HarrisKeypoint3D< PointInT, PointOutT, NormalT >::initCompute(), pcl::ISSKeypoint3D< PointInT, PointOutT, NormalT >::initCompute(), pcl::SUSANKeypoint< PointInT, PointOutT, NormalT, IntensityT >::initCompute() и pcl::TrajkovicKeypoint3D< PointInT, PointOutT, NormalT >::initCompute().
setRectSize()
| void pcl::IntegralImageNormalEstimation< PointInT, PointOutT >::setRectSize | ( | const int | width, |
| const int | height | ||
| ) |
Задаёт размер области, учитываемой при оценке нормалей.
- Параметры
-
[in] width ширина поискового прямоугольника [in] height высота поискового прямоугольника
Определение в строке 93 файла integral_image_normal.hpp.
setViewPoint()
| inline |
Задаёт точку обзора.
- Параметры
-
vpx X-координата точки обзора vpy Y-координата точки обзора vpz Z-координата точки обзора
Определение в строке 251 файла integral_image_normal.h.
useSensorOriginAsViewPoint()
| inline |
задаёт, следует ли использовать начало координат датчика или заданную пользователем точку обзора.
После вызова этого метода метод оценки нормалей использует начало координат датчика входного облака точек. Чтобы использовать заданную пользователем точку обзора, вызовите метод setViewPoint
Определение в строке 280 файла integral_image_normal.h.
Ссылки: pcl::PCLBase< PointInT >::input_.
Документация для этого класса создана на основе следующих файлов:
- pcl/features/integral_image_normal.h
- pcl/features/impl/integral_image_normal.hpp
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_integral_image_normal_estimation.html