Выборка облака точек на основе 6D ковариаций. Подробнее...
#include <pcl/filters/covariance_sampling.h>
Public Types | |
| 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 = стандартное поведение фильтра (по умолчанию), true = инвертированное поведение. Подробнее... |
|
| bool | keep_organized_ |
| 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" - Н. Гельфанд, Л. Икемото, С. Русинкевич, М. Левой
Определение в строке 62 файла covariance_sampling.h.
Документация псевдотипов членов
ConstPtr
| using pcl::CovarianceSampling< PointT, PointNT >::ConstPtr = shared_ptr< const CovarianceSampling<PointT, PointNT> > |
Определение в строке 77 файла covariance_sampling.h.
Ptr
| using pcl::CovarianceSampling< PointT, PointNT >::Ptr = shared_ptr< CovarianceSampling<PointT, PointNT> > |
Определение в строке 76 файла covariance_sampling.h.
Документация конструкторов и деструктора
CovarianceSampling()
| inline |
Пустой конструктор.
Определение в строке 80 файла 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]
| overrideprotectedvirtual |
Выборка индексов точек.
- Параметры
-
[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 |
Получить нормали, вычисленные на входном облаке точек.
Определение в строке 104 файла covariance_sampling.h.
Ссылок на pcl::CovarianceSampling< PointT, PointNT >::input_normals_.
getNumberOfSamples()
| inline |
Получить значение внутреннего параметра num_samples_.
Определение в строке 92 файла covariance_sampling.h.
Ссылок на pcl::CovarianceSampling< PointT, PointNT >::num_samples_.
initCompute()
| protected |
Определение в строке 50 файла covariance_sampling.hpp.
setNormals()
| inline |
Установить нормали, вычисленные на входном облаке точек.
- Параметры
-
[in] normals вычисленные нормали для входного облака
Определение в строке 99 файла covariance_sampling.h.
Ссылок на pcl::CovarianceSampling< PointT, PointNT >::input_normals_.
setNumberOfSamples()
| inline |
Установить количество индексов для выборки.
- Параметры
-
[in] samples количество индексов выборки
Определение в строке 87 файла covariance_sampling.h.
Ссылок на pcl::CovarianceSampling< PointT, PointNT >::num_samples_.
sort_dot_list_function()
| inlinestaticprotected |
Определение в строке 158 файла covariance_sampling.h.
Документация данных-членов
input_normals_
| protected |
Нормали, вычисленные для каждой точки в облаке входных данных.
Определение в строке 138 файла covariance_sampling.h.
Используется в pcl::CovarianceSampling< PointT, PointNT >::getNormals() и pcl::CovarianceSampling< PointT, PointNT >::setNormals().
num_samples_
| protected |
Количество индексов, которые будут возвращены.
Определение в строке 135 файла covariance_sampling.h.
Используется в pcl::CovarianceSampling< PointT, PointNT >::getNumberOfSamples() и pcl::CovarianceSampling< PointT, PointNT >::setNumberOfSamples().
scaled_points_
| protected |
Определение в строке 140 файла covariance_sampling.h.
The documentation for this class was generated from the following files:
- 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