ShapeContext3DEstimation реализует дескриптор контекста 3D-формы, описанный в: Подробнее...
#include <pcl/features/3dsc.h>
Общедоступные типы | |
| using | Ptr = shared_ptr< ShapeContext3DEstimation< PointInT, PointNT, PointOutT > > |
| using | ConstPtr = shared_ptr< const ShapeContext3DEstimation< PointInT, PointNT, PointOutT > > |
| using | PointCloudOut = typename Feature< PointInT, PointOutT >::PointCloudOut |
| using | PointCloudIn = typename Feature< PointInT, PointOutT >::PointCloudIn |
|
| |
| using | PointCloudN = pcl::PointCloud< PointNT > |
| using | PointCloudNPtr = typename PointCloudN::Ptr |
| using | PointCloudNConstPtr = typename PointCloudN::ConstPtr |
| using | Ptr = shared_ptr< FeatureFromNormals< PointInT, PointNT, pcl::ShapeContext1980 > > |
| using | ConstPtr = shared_ptr< const FeatureFromNormals< PointInT, PointNT, pcl::ShapeContext1980 > > |
|
| |
| 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 |
Открытые функции-члены | |
| ShapeContext3DEstimation (bool random=false) | |
| Конструктор. Подробнее... |
|
| ~ShapeContext3DEstimation () override=default | |
| std::size_t | getAzimuthBins () |
| std::size_t | getElevationBins () |
| std::size_t | getRadiusBins () |
| void | setMinimalRadius (double radius) |
| Минимальное значение радиуса сферы поиска (rmin), указанное в исходной статье. Подробнее... |
|
| double | getMinimalRadius () |
| void | setPointDensityRadius (double radius) |
| Этот радиус используется для вычисления локальной плотности точек: плотность = количество точек в пределах этого радиуса. Подробнее... |
|
| double | getPointDensityRadius () |
|
| |
| FeatureFromNormals () | |
| Пустой конструктор. Подробнее... |
|
| void | setInputNormals (const PointCloudNConstPtr &normals) |
| Передать указатель на входной набор данных, содержащий нормали точек набора данных XYZ. Подробнее... |
|
| PointCloudNConstPtr | getInputNormals () const |
| Получить указатель на нормали точечного облака входного набора данных XYZ. Подробнее... |
|
|
| |
| 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[] для сокращения кода. Подробнее... |
|
Защищенные функции-члены | |
| bool | initCompute () override |
| Инициализировать вычисления, выделив память для всех интервалов и таблицы поиска объёмов. Подробнее... |
|
| bool | computePoint (std::size_t index, const pcl::PointCloud< PointNT > &normals, float rf[9], std::vector< float > &desc) |
| Оценить дескриптор для заданной точки. Подробнее... |
|
| void | computeFeature (PointCloudOut &output) override |
| Оценить сам признак. Подробнее... |
|
| float | rnd () |
| Генератор случайных чисел на основе Boost. Подробнее... |
|
|
| |
| 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::vector< float > | radii_interval_ |
| Значения интервала радиусов. Подробнее... |
|
| std::vector< float > | theta_divisions_ |
| Интервал делений по тета. Подробнее... |
|
| std::vector< float > | phi_divisions_ |
| Интервал делений по фи. Подробнее... |
|
| std::vector< float > | volume_lut_ |
| Таблица поиска объёмов. Подробнее... |
|
| std::size_t | azimuth_bins_ {12} |
| Бины вдоль измерения азимута. Подробнее... |
|
| std::size_t | elevation_bins_ {11} |
| Бины вдоль измерения угла места. Подробнее... |
|
| std::size_t | radius_bins_ {15} |
| Бины вдоль измерения радиуса. Подробнее... |
|
| double | min_radius_ {0.1} |
| Минимальное значение радиуса. Подробнее... |
|
| double | point_density_radius_ {0.2} |
| Радиус плотности точек. Подробнее... |
|
| std::size_t | descriptor_length_ {} |
| Длина дескриптора. Подробнее... |
|
| std::mt19937 | rng_ |
| Алгоритм генератора случайных чисел. Подробнее... |
|
| std::uniform_real_distribution< float > | rng_dist_ |
| Распределение генератора случайных чисел. Подробнее... |
|
|
| |
| PointCloudNConstPtr | normals_ |
| Указатель на входной набор данных, содержащий нормали точек набора данных XYZ. Подробнее... |
|
|
| |
| 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 = pcl::ShapeContext1980>
class pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >
ShapeContext3DEstimation реализует дескриптор 3D-контекста формы, описанный в работе:
- Andrea Frome, Daniel Huber, Ravi Kolluri и Thomas Bülow, Jitendra Malik. Распознавание объектов по данным дальнометрии с использованием региональных дескрипторов точек. В материалах 8-й Европейской конференции по компьютерному зрению (ECCV), Прага, 11–14 мая 2004 г.
В качестве PointOutT рекомендуется использовать pcl::ShapeContext1980
- Внимание
- Для дескриптора 3D-контекста формы приняты следующие соглашения:
- если не удаётся определить ближайших соседей точки запроса, дескриптор признака устанавливается в NaN (не число), а RF — в 0
- невозможно оценить дескриптор 3D-контекста формы для точки с нечисловыми 3D-координатами. Поэтому для любой точки, содержащей данные NaN в x, y или z, граничное свойство признака будет установлено в NaN.
Документация псевдонимов типов-членов
ConstPtr
| using pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::ConstPtr = shared_ptr<const ShapeContext3DEstimation<PointInT, PointNT, PointOutT> > |
PointCloudIn
| using pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::PointCloudIn = typename Feature<PointInT, PointOutT>::PointCloudIn |
PointCloudOut
| using pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::PointCloudOut = typename Feature<PointInT, PointOutT>::PointCloudOut |
Ptr
| using pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::Ptr = shared_ptr<ShapeContext3DEstimation<PointInT, PointNT, PointOutT> > |
Описание конструктора и деструктора
ShapeContext3DEstimation()
| inline |
Конструктор.
- Параметры
-
[in] random Если значение равно true, случайное начальное значение задаётся текущим временем; в противном случае перед вычислением дескриптора оно задаётся равным 12345 (используется для выбора оси X)
Определение в строке 95 файла 3dsc.h.
Ссылки: pcl::Feature< PointInT, PointOutT >::feature_name_, pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::rng_ и pcl::Feature< PointInT, PointOutT >::search_radius_.
~ShapeContext3DEstimation()
| overridedefault |
Описание функций-членов
computeFeature()
| overrideprotectedvirtual |
Вычислить фактический признак.
- Параметры
-
[out] output результирующий признак
Реализует pcl::Feature< PointInT, PointOutT >.
Определение в строке 255 файла 3dsc.hpp.
Ссылки: pcl::isFinite().
computePoint()
| protected |
Вычислить дескриптор для заданной точки.
- Параметры
-
[in] index индекс точки, для которой нужно вычислить дескриптор [in] normals указатель на набор нормалей [out] rf опорный кадр [out] desc вычисленный результирующий дескриптор
- Возвращает
- true, если дескриптор успешно вычислен; false, если произошла ошибка (например, поиск ближайших соседей не вернул ни одного соседа)
--— Вычислить полярные координаты текущего соседа --— Получить расстояние между соседом и началом координат
Спроецировать точку на касательную плоскость
Нормализовать для вычисления скалярного произведения
Вычислить угол между проекцией и осью X в диапазоне [0,360]
Вычислить угол между соседом и осью Z (нормалью) в диапазоне [0, 180]
Добавить w в соответствующий бин Bin(j,k,l)
Определение в строке 133 файла 3dsc.hpp.
Ссылки: pcl::geometry::distance(), pcl::utils::equal(), pcl::isNormalFinite(), pcl::geometry::project() и pcl::rad2deg().
getAzimuthBins()
|
- Возвращает
- количество бинов по азимуту
Определение в строке 123 файла 3dsc.h.
Ссылки: pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::azimuth_bins_.
getElevationBins()
|
- Возвращает
- количество бинов по углу места
Определение в строке 130 файла 3dsc.h.
Ссылки: pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::elevation_bins_.
getMinimalRadius()
| inline |
- Возвращает
- минимальный радиус сферы
Определение в строке 147 файла 3dsc.h.
Ссылки: pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::min_radius_.
getPointDensityRadius()
|
- Возвращает
- радиус поиска плотности точек
Определение в строке 158 файла 3dsc.h.
Ссылки: pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::point_density_radius_.
getRadiusBins()
|
- Возвращает
- количество бинов по радиальному направлению
Определение в строке 137 файла 3dsc.h.
Ссылки: pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::radius_bins_.
initCompute()
| overrideprotectedvirtual |
Инициализировать вычисление, выделив память для всех интервалов и таблицы поиска объёма.
Переопределяет метод из pcl::FeatureFromNormals< PointInT, PointNT, pcl::ShapeContext1980 >.
Определение в строке 53 файла 3dsc.hpp.
Ссылки: pcl::deg2rad().
rnd()
| inlineprotected |
Генератор случайных чисел на основе Boost.
Определение в строке 228 файла 3dsc.h.
Ссылки: pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::rng_ и pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::rng_dist_.
setMinimalRadius()
| inline |
Минимальное значение радиуса сферы поиска (rmin) в исходной статье.
- Параметры
-
[in] radius требуемый минимальный радиус
Определение в строке 143 файла 3dsc.h.
Ссылки: pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::min_radius_.
setPointDensityRadius()
| inline |
Этот радиус используется для вычисления локальной плотности точек: плотность равна количеству точек в пределах этого радиуса.
- Параметры
-
[in] radius значение радиуса поиска для определения плотности точек
Определение в строке 154 файла 3dsc.h.
Ссылки: pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::point_density_radius_.
Описание данных-членов
azimuth_bins_
| protected |
Бины по измерению азимута.
Определение в строке 195 файла 3dsc.h.
Используется в pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::getAzimuthBins().
descriptor_length_
| protected |
elevation_bins_
| protected |
Бины по измерению угла места.
Определение в строке 198 файла 3dsc.h.
Используется в pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::getElevationBins().
min_radius_
| protected |
Минимальное значение радиуса.
Определение в строке 204 файла 3dsc.h.
Используется в pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::getMinimalRadius() и pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::setMinimalRadius().
phi_divisions_
| protected |
point_density_radius_
| protected |
Радиус для определения плотности точек.
Определение в строке 207 файла 3dsc.h.
Используется в pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::getPointDensityRadius() и pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::setPointDensityRadius().
radii_interval_
| protected |
radius_bins_
| protected |
Бины вдоль радиального измерения.
Определение в строке 201 файла 3dsc.h.
Используется в pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::getRadiusBins().
rng_
| protected |
Алгоритм генерации случайных чисел.
Определение в строке 213 файла 3dsc.h.
Используется в pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::rnd() и pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::ShapeContext3DEstimation().
rng_dist_
| protected |
Распределение генератора случайных чисел.
Определение в строке 216 файла 3dsc.h.
Используется в pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >::rnd().
theta_divisions_
| protected |
volume_lut_
| protected |
Документация этого класса создана на основе следующих файлов:
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_shape_context3_d_estimation.html