Выборка облака точек на основе 6D-ковариаций. Подробнее...
#include <pcl/filters/covariance_sampling.h>
Открытые типы | |
| using | Ptr = shared_ptr< CovarianceSampling< PointT, PointNT > > |
| using | ConstPtr = shared_ptr< const CovarianceSampling< PointT, PointNT > > |
|
| |
| using | PointCloud = pcl::PointCloud< PointT > |
| using | Ptr = shared_ptr< FilterIndices< PointT > > |
| using | ConstPtr = shared_ptr< const FilterIndices< PointT > > |
|
| |
| using | Ptr = shared_ptr< Filter< PointT > > |
| using | ConstPtr = shared_ptr< const Filter< PointT > > |
| using | PointCloud = pcl::PointCloud< PointT > |
| using | PointCloudPtr = typename PointCloud::Ptr |
| using | PointCloudConstPtr = typename PointCloud::ConstPtr |
|
| |
| using | PointCloud = pcl::PointCloud< PointT > |
| using | PointCloudPtr = typename PointCloud::Ptr |
| using | PointCloudConstPtr = typename PointCloud::ConstPtr |
| using | PointIndicesPtr = PointIndices::Ptr |
| using | PointIndicesConstPtr = PointIndices::ConstPtr |
Открытые функции-члены | |
| CovarianceSampling () | |
| Конструктор без параметров. Подробнее... |
|
| void | setNumberOfSamples (unsigned int samples) |
| Задать количество индексов для выборки. Подробнее... |
|
| unsigned int | getNumberOfSamples () const |
| Получить значение внутреннего параметра num_samples_. Подробнее... |
|
| void | setNormals (const NormalsConstPtr &normals) |
| Задать нормали, вычисленные для входного облака точек. Подробнее... |
|
| NormalsConstPtr | getNormals () const |
| Получить нормали, вычисленные для входного облака точек. Подробнее... |
|
| double | computeConditionNumber () |
| Вычислить число обусловленности входного облака точек. Подробнее... |
|
| bool | computeCovarianceMatrix (Eigen::Matrix< double, 6, 6 > &covariance_matrix) |
| Вычисляет ковариационную матрицу входного облака. Подробнее... |
|
|
| |
| FilterIndices (bool extract_removed_indices=false) | |
| Конструктор. Подробнее... |
|
| void | filter (Indices &indices) |
| Вызывает метод фильтрации и возвращает индексы точек отфильтрованного облака. Подробнее... |
|
| void | setNegative (bool negative) |
| Задать, следует ли применять обычные условия фильтрации точек или инвертированные. Подробнее... |
|
| bool | getNegative () const |
| Получить настройку, определяющую, следует ли применять обычные условия фильтрации точек или инвертированные. Подробнее... |
|
| void | setKeepOrganized (bool keep_organized) |
| Задать, следует ли сохранять отфильтрованные точки и присваивать им значение, заданное через setUserFilterValue (по умолчанию: NaN), или удалять их из PointCloud, что может нарушить его упорядоченную структуру. Подробнее... |
|
| bool | getKeepOrganized () const |
| Получить настройку, определяющую, следует ли сохранять отфильтрованные точки и присваивать им значение, заданное через setUserFilterValue (по умолчанию = NaN), или удалять их из PointCloud, что может нарушить его упорядоченную структуру. Подробнее... |
|
| void | setUserFilterValue (float value) |
| Задать значение, которое будет присваиваться отфильтрованным точкам вместо их удаления. Подробнее... |
|
|
| |
| Filter (bool extract_removed_indices=false) | |
| Конструктор без параметров. Подробнее... |
|
| IndicesConstPtr const | getRemovedIndices () const |
| Получить индексы удаляемых точек. Подробнее... |
|
| void | getRemovedIndices (PointIndices &pi) |
| Получить индексы удаляемых точек. Подробнее... |
|
| void | filter (PointCloud &output) |
| Вызывает метод фильтрации и записывает отфильтрованный набор данных в output. Подробнее... |
|
|
| |
| 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 PointT & | operator[] (std::size_t pos) const |
| Переопределяет оператор [] класса PointCloud, чтобы сократить код. Подробнее... |
|
Открытые статические функции-члены | |
| static double | computeConditionNumber (const Eigen::Matrix< double, 6, 6 > &covariance_matrix) |
| Вычислить число обусловленности входного облака точек. Подробнее... |
|
Защищённые функции-члены | |
| bool | initCompute () |
| void | applyFilter (Cloud &output) override |
| Выборка индексов точек в отдельное облако PointCloud. Подробнее... |
|
| void | applyFilter (Indices &indices) override |
| Выборка индексов точек. Подробнее... |
|
|
| |
| void | applyFilter (PointCloud &output) override |
| Абстрактный метод фильтрации облака точек. Подробнее... |
|
|
| |
| const std::string & | getClassName () const |
| Получить строковое представление имени этого класса. Подробнее... |
|
|
| |
| bool | initCompute () |
| Этот метод следует вызвать перед началом вычислений. Подробнее... |
|
| bool | deinitCompute () |
| Этот метод следует вызвать после завершения вычислений. Подробнее... |
|
Защищённые статические функции-члены | |
| static bool | sort_dot_list_function (std::pair< int, double > a, std::pair< int, double > b) |
Защищённые атрибуты | |
| unsigned int | num_samples_ |
| Количество индексов, которые будут возвращены. Подробнее... |
|
| NormalsConstPtr | input_normals_ |
| Нормали, вычисленные для каждой точки во входном облаке. Подробнее... |
|
| std::vector< Eigen::Vector3f, Eigen::aligned_allocator< Eigen::Vector3f > > | scaled_points_ |
|
| |
| bool | negative_ {false} |
| False = обычное поведение фильтра (по умолчанию), true = инвертированное поведение. Подробнее... |
|
| bool | keep_organized_ {false} |
| False = удалить точки (по умолчанию), true = переопределить точки, сохранив структуру. Подробнее... |
|
| float | user_filter_value_ |
| Заданное пользователем значение, которому должны быть присвоены координаты отфильтрованных точек (по умолчанию = NaN). Подробнее... |
|
|
| |
| IndicesPtr | removed_indices_ |
| Индексы удалённых точек. Подробнее... |
|
| std::string | filter_name_ |
| Имя фильтра. Подробнее... |
|
| bool | extract_removed_indices_ |
| Установите значение true, если нужно возвращать индексы удалённых точек. Подробнее... |
|
|
| |
| PointCloudConstPtr | input_ |
| Входной набор данных облака точек. Подробнее... |
|
| IndicesPtr | indices_ |
| Указатель на вектор используемых индексов точек. Подробнее... |
|
| bool | use_indices_ |
| Установите значение true, если используются индексы точек. Подробнее... |
|
| bool | fake_indices_ |
| Если набор индексов не задан, создаётся набор фиктивных индексов, имитирующий входной объект PointCloud. Подробнее... |
|
Подробное описание
template<typename PointT, typename PointNT>
class pcl::CovarianceSampling< PointT, PointNT >
Выборка точек на основе 6D-ковариаций.
Точки выбираются таким образом, чтобы результирующее облако было максимально устойчивым при регистрации с помощью ICP (относительно его копии). Алгоритм постепенно добавляет точки в результирующее облако, стараясь поддерживать все 6 собственных значений матрицы ковариации как можно ближе друг к другу. В этом классе также имеется метод computeConditionNumber, возвращающий число, которое показывает, насколько устойчивым будет облако точек при использовании в качестве входных данных ICP (чем ближе значение к 1.0, тем лучше).
Основано на следующей публикации:
- "Geometrically Stable Sampling for the ICP Algorithm" — N. Gelfand, L. Ikemoto, S. Rusinkiewicz, M. Levoy
Определение в строке 63 файла covariance_sampling.h.
Документация псевдонимов типов-членов
ConstPtr
| using pcl::CovarianceSampling< PointT, PointNT >::ConstPtr = shared_ptr< const CovarianceSampling<PointT, PointNT> > |
Определение в строке 78 файла covariance_sampling.h.
Ptr
| using pcl::CovarianceSampling< PointT, PointNT >::Ptr = shared_ptr< CovarianceSampling<PointT, PointNT> > |
Определение в строке 77 файла covariance_sampling.h.
Документация конструкторов и деструкторов
CovarianceSampling()
| inline |
Пустой конструктор.
Определение в строке 81 файла covariance_sampling.h.
Ссылки: pcl::Filter< PointT >::filter_name_.
Документация функций-членов
applyFilter() [1/2]
| overrideprotectedvirtual |
Выборка индексов точек в отдельное облако PointCloud.
- Параметры
-
[out] output результирующее облако точек
Реализует pcl::Filter< PointT >.
Определение в строке 213 файла covariance_sampling.hpp.
applyFilter() [2/2]
| [override][protected][virtual] |
Выборка индексов точек.
- Параметры
-
[out] indices индексы результирующего облака точек
TODO: выяснить, как заполнить candidate_indices — см. последующие абзацы статьи
Реализует pcl::FilterIndices< PointT >.
Определение в строке 131 файла covariance_sampling.hpp.
Ссылки: pcl::computeCovarianceMatrix().
computeConditionNumber() [1/2]
| double pcl::CovarianceSampling< PointT, PointNT >::computeConditionNumber |
Вычисляет число обусловленности входного облака точек.
Число обусловленности — это отношение наибольшего собственного значения к наименьшему собственному значению матрицы ковариации облака размером 6x6. Чем ближе это число к 1.0, тем устойчивее облако при регистрации с помощью ICP.
- Возвращает
- число обусловленности
Определение в строке 86 файла covariance_sampling.hpp.
Ссылки: pcl::computeCovarianceMatrix().
computeConditionNumber() [2/2]
| static |
Вычисляет число обусловленности входного облака точек.
Число обусловленности — это отношение наибольшего собственного значения к наименьшему собственному значению матрицы ковариации облака размером 6x6. Чем ближе это число к 1.0, тем устойчивее облако при регистрации с помощью ICP.
- Параметры
-
[in] covariance_matrix матрица ковариации, заданная пользователем. Предполагается, что она является самосопряжённой/симметричной.
- Возвращает
- число обусловленности
Определение в строке 98 файла covariance_sampling.hpp.
computeCovarianceMatrix()
| bool pcl::CovarianceSampling< PointT, PointNT >::computeCovarianceMatrix | ( | Eigen::Matrix< double, 6, 6 > & | covariance_matrix | ) |
Вычисляет матрицу ковариации входного облака.
- Параметры
-
[out] covariance_matrix вычисленная матрица ковариации.
- Возвращает
- успешно ли прошло вычисление
Определение в строке 109 файла covariance_sampling.hpp.
getNormals()
| inline |
Возвращает нормали, вычисленные для входного облака точек.
Определение в строке 105 файла covariance_sampling.h.
Ссылки: pcl::CovarianceSampling< PointT, PointNT >::input_normals_.
getNumberOfSamples()
| inline |
Возвращает значение внутреннего параметра num_samples_.
Определение в строке 93 файла covariance_sampling.h.
Ссылки: pcl::CovarianceSampling< PointT, PointNT >::num_samples_.
initCompute()
| protected |
Определение в строке 50 файла covariance_sampling.hpp.
setNormals()
| inline |
Задаёт нормали, вычисленные для входного облака точек.
- Параметры
-
[in] normals нормали, вычисленные для входного облака
Определение в строке 100 файла covariance_sampling.h.
Ссылки: pcl::CovarianceSampling< PointT, PointNT >::input_normals_.
setNumberOfSamples()
| inline |
Задаёт количество выбираемых индексов.
- Параметры
-
[in] samples количество индексов выборки
Определение в строке 88 файла covariance_sampling.h.
Ссылки: pcl::CovarianceSampling< PointT, PointNT >::num_samples_.
sort_dot_list_function()
| inlinestaticprotected |
Определение в строке 159 файла covariance_sampling.h.
Описание данных-членов
input_normals_
| protected |
Нормали, вычисленные в каждой точке входного облака.
Определение в строке 139 файла covariance_sampling.h.
Используется в pcl::CovarianceSampling< PointT, PointNT >::getNormals() и pcl::CovarianceSampling< PointT, PointNT >::setNormals().
num_samples_
| protected |
Количество индексов, которые будут возвращены.
Определение в строке 136 файла covariance_sampling.h.
Используется в pcl::CovarianceSampling< PointT, PointNT >::getNumberOfSamples() и pcl::CovarianceSampling< PointT, PointNT >::setNumberOfSamples().
scaled_points_
| protected |
Определение в строке 141 файла covariance_sampling.h.
Документация этого класса создана на основе следующих файлов:
- pcl/filters/covariance_sampling.h
- pcl/filters/impl/covariance_sampling.hpp
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_covariance_sampling.html