Вычисляет дескрипторы спин-образа для заданных входных точек. Подробнее...
#include <pcl/features/spin_image.h>
Открытые типы | |
| 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 |
|
| |
| 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 |
Общедоступные функции-члены | |
| 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) |
| Включает или отключает флаг радиальной структуры спин-изображения. Подробнее... |
|
|
| |
| 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 |
| Вычисляет дескрипторы Spin Image для набора точек, заданного с помощью setInputWithNormals(), используя поверхность из setSearchSurfaceWithNormals() и пространственный поисковый индекс. Подробнее... |
|
| bool | initCompute () override |
| Инициализирует вычисления, специфичные для spin-image. Подробнее... |
|
| Eigen::ArrayXXd | computeSiForPoint (int index) const |
| Вычисляет spin-image для точки сканирования. Подробнее... |
|
|
| |
| 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_ |
| Количество K ближайших соседей для каждой точки. Подробнее... |
|
| bool | fake_surface_ |
| Если поверхность не задана, входное облако PointCloud используется в качестве поверхности. Подробнее... |
|
|
| |
| 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 в угловой области (или оба варианта).
Определение в строке 89 файла spin_image.h.
Описание псевдонимов типов-членов
ConstPtr
| using pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::ConstPtr = shared_ptr<const SpinImageEstimation<PointInT, PointNT, PointOutT> > |
Определение в строке 93 файла spin_image.h.
PointCloudIn
| using pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::PointCloudIn = pcl::PointCloud<PointInT> |
Определение в строке 109 файла spin_image.h.
PointCloudInConstPtr
| using pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::PointCloudInConstPtr = typename PointCloudIn::ConstPtr |
Определение в строке 111 файла spin_image.h.
PointCloudInPtr
| using pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::PointCloudInPtr = typename PointCloudIn::Ptr |
Определение в строке 110 файла spin_image.h.
PointCloudN
| using pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::PointCloudN = pcl::PointCloud<PointNT> |
Определение в строке 105 файла spin_image.h.
PointCloudNConstPtr
| using pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::PointCloudNConstPtr = typename PointCloudN::ConstPtr |
Определение в строке 107 файла spin_image.h.
PointCloudNPtr
| using pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::PointCloudNPtr = typename PointCloudN::Ptr |
Определение в строке 106 файла spin_image.h.
PointCloudOut
| using pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::PointCloudOut = typename Feature<PointInT, PointOutT>::PointCloudOut |
Определение в строке 103 файла spin_image.h.
Ptr
| using pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::Ptr = shared_ptr<SpinImageEstimation<PointInT, PointNT, PointOutT> > |
Определение в строке 92 файла spin_image.h.
Описание конструктора и деструктора
SpinImageEstimation()
| 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()
| overridedefault |
Пустой деструктор.
Документация функций-членов
computeFeature()
| overrideprotectedvirtual |
Оценивает дескрипторы Spin Image в наборе точек, заданном с помощью setInputWithNormals(), используя поверхность из setSearchSurfaceWithNormals() и пространственный локатор.
- Параметры
-
[out] output результирующее облако точек, содержащее оценки признака Spin Image
Реализует pcl::Feature< PointInT, PointOutT >.
Определение в строке 324 файла spin_image.hpp.
computeSiForPoint()
| protected |
Вычисляет спин-изображение для точки сканирования.
- Параметры
-
[in] index индекс опорной точки во входном облаке
- Возвращает
- оцененное спин-изображение (или его вариант) в виде матрицы
Определение в строке 69 файла spin_image.hpp.
Ссылка на M_PI.
initCompute()
| overrideprotectedvirtual |
Инициализирует вычисления, специфичные для спин-изображения.
- Возвращает
- true, если входные данные и инициализация корректны
Переопределяет метод из pcl::Feature< PointInT, PointOutT >.
Определение в строке 239 файла spin_image.hpp.
Ссылка на pcl::Feature< PointInT, PointOutT >::deinitCompute().
setAngularDomain()
| 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()
| inline |
Задает разрешение спин-изображения.
- Параметры
-
[in] bin_count разрешение спин-изображения, число интервалов вдоль одного измерения
Определение в строке 134 файла spin_image.h.
Используется в pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >::SpinImageEstimation().
setInputNormals()
| inline |
Передает указатель на входной набор данных, содержащий нормали точек входного набора XYZ, заданного с помощью setInputCloud.
- Внимание
- Входные нормали, переданные с помощью setInputNormals, должны соответствовать входному облаку точек, заданному с помощью setInputCloud. Это отличается от методов оценки признаков, расширяющих FeatureFromNormals, в которых нормали сопоставляются с поверхностью поиска.
- Параметры
-
[in] normals константный общий указатель boost на PointCloud нормалей. По соглашению, норма L2 каждой нормали должна быть равна 1.
Определение в строке 199 файла spin_image.h.
setInputRotationAxes()
| inline |
Задает массив векторов в качестве осей вращения для входных точек.
Полезно, например, если в качестве осей вращения нужно использовать касательные вместо нормалей.
- Параметры
-
[in] axes векторы единичной длины, служащие осями вращения систем координат, связанных с соответствующими входными точками
Определение в строке 224 файла spin_image.h.
setMinPointCountInNeighbourhood()
| inline |
Задает минимальное число точек для вычисления спин-изображения.
- Параметры
-
[in] min_pts_neighb минимальное число точек в области поддержки для корректной оценки спин-изображения. Если в какой-либо точке область поддержки содержит меньше точек, генерируется исключение
Определение в строке 183 файла spin_image.h.
setRadialStructure()
|
Устанавливает или снимает флаг радиальной структуры спин-изображения.
Вместо прямоугольной системы координат системы отсчета используются полярные координаты. Разбиение на интервалы выполняется в зависимости от расстояния и угла наклона относительно опорной точки.
- Параметры
-
[in] is_radial true для радиальной структуры спин-изображения, false для прямоугольной
Определение в строке 262 файла spin_image.h.
setRotationAxis()
|
Задает один вектор в качестве оси вращения для всех входных точек.
Может быть полезно, например, если известна вертикальная ось.
- Параметры
-
[in] axis вектор единичной длины, служащий осью вращения системы отсчета
Определение в строке 210 файла spin_image.h.
setSupportAngle()
|
Задает максимальный угол, при котором нормаль точки может попадать в область поддержки.
- Параметры
-
[in] support_angle_cos минимально допустимый косинус угла между нормалями входной точки и точки на поверхности поиска, при котором точка сохраняется в области поддержки
Определение в строке 166 файла spin_image.h.
useNormalsAsRotationAxis()
|
Использует входные нормали в качестве осей вращения (настройка по умолчанию).
Определение в строке 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