Spec-Zone.ru › PointCloudLibrary

Вычисляет дескрипторы спин-образа для заданных входных точек. Подробнее...

#include <pcl/features/spin_image.h>

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

Открытые типы

using Ptr = shared_ptr< SpinImageEstimation< PointInT, PointNT, PointOutT > >
using ConstPtr = shared_ptr< const SpinImageEstimation< 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 PointCloudIn = pcl::PointCloud< PointInT >
using PointCloudInPtr = typename PointCloudIn::Ptr
using PointCloudInConstPtr = typename PointCloudIn::ConstPtr
- Открытые типы, унаследованные от 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

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

SpinImageEstimation (unsigned int image_width=8, double support_angle_cos=0.0, unsigned int min_pts_neighb=0)
Создаёт пустой оценщик спин-изображений. Подробнее...
~SpinImageEstimation () override=default
Пустой деструктор. Подробнее...
void setImageWidth (unsigned int bin_count)
Задаёт разрешение спин-изображения. Подробнее...
void setSupportAngle (double support_angle_cos)
Задаёт максимальный угол между нормалью точки и областью поддержки. Подробнее...
void setMinPointCountInNeighbourhood (unsigned int min_pts_neighb)
Задаёт минимальное количество точек для вычисления спин-изображения. Подробнее...
void setInputNormals (const PointCloudNConstPtr &normals)
Предоставляет указатель на входной набор данных, содержащий нормали точек входного набора XYZ, заданного с помощью setInputCloud. Подробнее...
void setRotationAxis (const PointNT &axis)
Задаёт один вектор в качестве оси вращения для всех входных точек. Подробнее...
void setInputRotationAxes (const PointCloudNConstPtr &axes)
Задаёт массив векторов в качестве осей вращения для входных точек. Подробнее...
void useNormalsAsRotationAxis ()
Задаёт входные нормали в качестве осей вращения (значение по умолчанию). Подробнее...
void setAngularDomain (bool is_angular=true)
Включает или отключает флаг угловой области спин-изображения. Подробнее...
void setRadialStructure (bool is_radial=true)
Включает или отключает флаг радиальной структуры спин-изображения. Подробнее...
- Общедоступные функции-члены, унаследованные от 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
Вычисляет дескрипторы Spin Image для набора точек, заданного с помощью setInputWithNormals(), используя поверхность из setSearchSurfaceWithNormals() и пространственный поисковый индекс. Подробнее...
bool initCompute () override
Инициализирует вычисления, специфичные для spin-image. Подробнее...
Eigen::ArrayXXd computeSiForPoint (int index) const
Вычисляет spin-image для точки сканирования. Подробнее...
- Защищённые функции-члены, унаследованные от pcl::Feature< PointInT, PointOutT >
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. Подробнее...
- Защищённые функции-члены, унаследованные от pcl::PCLBase< PointInT >
bool initCompute ()
Этот метод следует вызывать перед началом фактического вычисления. Подробнее...
bool deinitCompute ()
Этот метод следует вызывать после завершения фактического вычисления. Подробнее...

Дополнительные унаследованные члены

- Защищённые атрибуты, унаследованные от 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 PointNT, typename PointOutT>
class pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >

Вычисляет дескрипторы spin-image для заданных входных точек.

Этот класс представляет дескриптор spin image. Spin image — это гистограмма расположения точек, суммированных по ячейкам изображения. Создаётся двумерный аккумулятор, индексируемый по a и b. Затем для вершины поверхностной сетки, находящейся в области поддержки spin image (описанной ниже), вычисляются координаты (a, b). Значение в ячейке аккумулятора с индексом (a, b) увеличивается; для сглаживания вклада вершины используется билинейная интерполяция. Эта процедура повторяется для всех вершин в области поддержки spin image. Полученный аккумулятор можно рассматривать как изображение: тёмные области соответствуют ячейкам, содержащим множество спроецированных точек. Если размер ячеек аккумулятора больше медианного расстояния между вершинами сетки (определения разрешения сетки), положения отдельных вершин усредняются при построении spin image.

Внимание
Входные нормали, заданные с помощью setInputNormals, должны соответствовать входному облаку точек, заданному с помощью setInputCloud. Это поведение отличается от методов вычисления признаков, наследующих FeatureFromNormals, в которых нормали соответствуют поверхности поиска.

При параметрах по умолчанию для PointOutT подходит pcl::Histogram<153>. Разумеется, размерность этого дескриптора должна соответствовать количеству ячеек, заданному параметрами. Если вы используете SpinImageEstimation с типом, отличным от pcl::Histogram<153>, возможно, перед подключением pcl/features/spin_image.h потребуется добавить #define PCL_NO_PRECOMPILE 1.

Дополнительную информацию см. в работе:

  • Johnson, A. E., & Hebert, M. (1998). Сопоставление поверхностей для распознавания объектов в сложных трёхмерных сценах. Image and Vision Computing, 16, 635-651.

Класс также реализует радиальные spin image и spin image в угловой области (или оба варианта).

Автор
Roman Shapovalov, Alexander Velizhev

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

Описание псевдонимов типов-членов

ConstPtr

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

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

PointCloudIn

template<typename PointInT , typename PointNT , typename PointOutT >
using pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::PointCloudIn = pcl::PointCloud<PointInT>

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

PointCloudInConstPtr

template<typename PointInT , typename PointNT , typename PointOutT >
using pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::PointCloudInConstPtr = typename PointCloudIn::ConstPtr

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

PointCloudInPtr

template<typename PointInT , typename PointNT , typename PointOutT >
using pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::PointCloudInPtr = typename PointCloudIn::Ptr

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

PointCloudN

template<typename PointInT , typename PointNT , typename PointOutT >
using pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::PointCloudN = pcl::PointCloud<PointNT>

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

PointCloudNConstPtr

template<typename PointInT , typename PointNT , typename PointOutT >
using pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::PointCloudNConstPtr = typename PointCloudN::ConstPtr

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

PointCloudNPtr

template<typename PointInT , typename PointNT , typename PointOutT >
using pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::PointCloudNPtr = typename PointCloudN::Ptr

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

PointCloudOut

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

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

Ptr

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

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

Описание конструктора и деструктора

SpinImageEstimation()

template<typename PointInT , typename PointNT , typename PointOutT >
pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::SpinImageEstimation ( unsigned int image_width = 8,
double support_angle_cos = 0.0,
unsigned int min_pts_neighb = 0
)

Создает пустой оценщик спин-изображений.

Параметры
[in] image_width разрешение спин-изображения, число интервалов вдоль одного измерения
[in] support_angle_cos минимально допустимый косинус угла между нормалями входной точки и точки на поверхности поиска, при котором точка сохраняется в области поддержки
[in] min_pts_neighb минимальное число точек в области поддержки для корректной оценки спин-изображения. Если в какой-либо точке область поддержки содержит меньше точек, генерируется исключение

Определение в строке 52 файла spin_image.hpp.

Ссылки на pcl::Feature< PointInT, PointOutT >::feature_name_ и pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::setImageWidth().

~SpinImageEstimation()

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

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

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

computeFeature()

template<typename PointInT , typename PointNT , typename PointOutT >
void pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::computeFeature ( PointCloudOut & output )
overrideprotectedvirtual

Оценивает дескрипторы Spin Image в наборе точек, заданном с помощью setInputWithNormals(), используя поверхность из setSearchSurfaceWithNormals() и пространственный локатор.

Параметры
[out] output результирующее облако точек, содержащее оценки признака Spin Image

Реализует pcl::Feature< PointInT, PointOutT >.

Определение в строке 324 файла spin_image.hpp.

computeSiForPoint()

template<typename PointInT , typename PointNT , typename PointOutT >
Eigen::ArrayXXd pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::computeSiForPoint ( int index ) const
protected

Вычисляет спин-изображение для точки сканирования.

Параметры
[in] index индекс опорной точки во входном облаке
Возвращает
оцененное спин-изображение (или его вариант) в виде матрицы

Определение в строке 69 файла spin_image.hpp.

Ссылка на M_PI.

initCompute()

template<typename PointInT , typename PointNT , typename PointOutT >
bool pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::initCompute
overrideprotectedvirtual

Инициализирует вычисления, специфичные для спин-изображения.

Возвращает
true, если входные данные и инициализация корректны

Переопределяет метод из pcl::Feature< PointInT, PointOutT >.

Определение в строке 239 файла spin_image.hpp.

Ссылка на pcl::Feature< PointInT, PointOutT >::deinitCompute().

setAngularDomain()

template<typename PointInT , typename PointNT , typename PointOutT >
void pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::setAngularDomain ( bool is_angular = true )
inline

Устанавливает или снимает флаг угловой области спин-изображения.

Угловое спин-изображение отличается от обычного тем, что в интервалы помещаются не точки, а углы между их нормалями и нормалью опорной точки. Дополнительную информацию см. в статье Endres, F., Plagemann, C., Stachniss, C., & Burgard, W. (2009). Unsupervised Discovery of объектов Classes from Range Data using Latent Dirichlet Allocation. In Robotics: Science and Systems. Seattle, USA.

Параметры
[in] is_angular true для угловой области, false для области точек

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

setImageWidth()

template<typename PointInT , typename PointNT , typename PointOutT >
void pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::setImageWidth ( unsigned int bin_count )
inline

Задает разрешение спин-изображения.

Параметры
[in] bin_count разрешение спин-изображения, число интервалов вдоль одного измерения

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

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

setInputNormals()

template<typename PointInT , typename PointNT , typename PointOutT >
void pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::setInputNormals ( const PointCloudNConstPtr & normals )
inline

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

Внимание
Входные нормали, переданные с помощью setInputNormals, должны соответствовать входному облаку точек, заданному с помощью setInputCloud. Это отличается от методов оценки признаков, расширяющих FeatureFromNormals, в которых нормали сопоставляются с поверхностью поиска.
Параметры
[in] normals константный общий указатель boost на PointCloud нормалей. По соглашению, норма L2 каждой нормали должна быть равна 1.

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

setInputRotationAxes()

template<typename PointInT , typename PointNT , typename PointOutT >
void pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::setInputRotationAxes ( const PointCloudNConstPtr & axes )
inline

Задает массив векторов в качестве осей вращения для входных точек.

Полезно, например, если в качестве осей вращения нужно использовать касательные вместо нормалей.

Параметры
[in] axes векторы единичной длины, служащие осями вращения систем координат, связанных с соответствующими входными точками

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

setMinPointCountInNeighbourhood()

template<typename PointInT , typename PointNT , typename PointOutT >
void pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::setMinPointCountInNeighbourhood ( unsigned int min_pts_neighb )
inline

Задает минимальное число точек для вычисления спин-изображения.

Параметры
[in] min_pts_neighb минимальное число точек в области поддержки для корректной оценки спин-изображения. Если в какой-либо точке область поддержки содержит меньше точек, генерируется исключение

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

setRadialStructure()

template<typename PointInT , typename PointNT , typename PointOutT >
void pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::setRadialStructure ( bool is_radial = true ) inline

Устанавливает или снимает флаг радиальной структуры спин-изображения.

Вместо прямоугольной системы координат системы отсчета используются полярные координаты. Разбиение на интервалы выполняется в зависимости от расстояния и угла наклона относительно опорной точки.

Параметры
[in] is_radial true для радиальной структуры спин-изображения, false для прямоугольной

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

setRotationAxis()

template<typename PointInT , typename PointNT , typename PointOutT >
void pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::setRotationAxis ( const PointNT & axis ) inline

Задает один вектор в качестве оси вращения для всех входных точек.

Может быть полезно, например, если известна вертикальная ось.

Параметры
[in] axis вектор единичной длины, служащий осью вращения системы отсчета

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

setSupportAngle()

template<typename PointInT , typename PointNT , typename PointOutT >
void pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::setSupportAngle ( double support_angle_cos ) inline

Задает максимальный угол, при котором нормаль точки может попадать в область поддержки.

Параметры
[in] support_angle_cos минимально допустимый косинус угла между нормалями входной точки и точки на поверхности поиска, при котором точка сохраняется в области поддержки

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

useNormalsAsRotationAxis()

template<typename PointInT , typename PointNT , typename PointOutT >
void pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::useNormalsAsRotationAxis ( ) inline

Использует входные нормали в качестве осей вращения (настройка по умолчанию).

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


Документация для этого класса была создана на основе следующих файлов:
  • pcl/features/spin_image.h
  • pcl/features/impl/spin_image.hpp

© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_spin_image_estimation.html

Spec-Zone.ru

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