StatisticalOutlierRemoval использует статистику окрестности точек для фильтрации выбросов данных. Подробнее...
#include <pcl/filters/statistical_outlier_removal.h>
Public Types | |
| using | Ptr = shared_ptr< StatisticalOutlierRemoval< PointT > > |
| using | ConstPtr = shared_ptr< const StatisticalOutlierRemoval< PointT > > |
|
| |
| 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 |
Общедоступные члены функций | |
| StatisticalOutlierRemoval (bool extract_removed_indices=false) | |
| Конструктор. Подробнее... |
|
| void | setMeanK (int nr_k) |
| Установить количество ближайших соседей для оценки среднего расстояния. Подробнее... |
|
| int | getMeanK () |
| Получить количество ближайших соседей для оценки среднего расстояния. Подробнее... |
|
| void | setStddevMulThresh (double stddev_mult) |
| Установить множитель стандартного отклонения для расчета порога расстояния. Подробнее... |
|
| double | getStddevMulThresh () |
| Получить множитель стандартного отклонения для расчета порога расстояния. Подробнее... |
|
|
| |
| 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 для сокращения кода. Подробнее... |
|
Защищенные типы | |
| using | PointCloud = typename FilterIndices< PointT >::PointCloud |
| using | PointCloudPtr = typename PointCloud::Ptr |
| using | PointCloudConstPtr = typename PointCloud::ConstPtr |
| using | SearcherPtr = typename pcl::search::Search< PointT >::Ptr |
Защищенные члены-функции | |
| void | applyFilter (Indices &indices) override |
| Результат фильтрации индексируется массивом indices. Подробнее... |
|
| void | applyFilterIndices (Indices &indices) |
| Результат фильтрации индексируется массивом indices. Подробнее... |
|
|
| |
| void | applyFilter (PointCloud &output) override |
| Абстрактный метод фильтра для облака точек. Подробнее... |
|
|
| |
| const std::string & | getClassName () const |
| Получить строковое представление имени этого класса. Подробнее... |
|
|
| |
| bool | initCompute () |
| Этот метод должен вызываться перед началом фактического вычисления. Подробнее... |
|
| bool | deinitCompute () |
| Этот метод должен вызываться после завершения фактического вычисления. Подробнее... |
|
Дополнительные унаследованные члены | |
|
| |
| 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. Подробнее... |
|
Подробное описание
шаблон<typename PointT>
класс pcl::StatisticalOutlierRemoval< PointT >
StatisticalOutlierRemoval использует статистику ближайших соседей точек для фильтрации выбросов.
Алгоритм итерируется по всему входному набору дважды: Во время первой итерации он вычислит среднее расстояние каждой точки до её k ближайших соседей. Значение k можно установить с помощью setMeanK(). Затем рассчитываются среднее и стандартное отклонение всех этих расстояний для определения порога расстояния. Порог расстояния будет равен: среднее + stddev_mult * стандартное отклонение. Множитель стандартного отклонения можно установить с помощью setStddevMulThresh(). Во время следующей итерации точки будут классифицированы как внутренние или внешние, если их среднее расстояние до соседей меньше или больше этого порога соответственно.
Соседи, найденные для каждой точки запроса, будут найдены среди ВСЕХ точек из setInputCloud(), а не только тех, которые проиндексированы с помощью setIndices(). Метод setIndices() только индексирует точки, которые будут итерироваться в качестве точек запроса поиска.
Для получения дополнительной информации:
- R. B. Rusu, Z. C. Marton, N. Blodow, M. Dolha, and M. Beetz. Towards 3D Point Cloud Based Объектных Картах для Домашней Среды Робототехники и Автономных Систем Журнал (специальный выпуск по семантическому знанию), 2008.
Пример использования:pcl::StatisticalOutlierRemoval<PointType> sorfilter (true); // Initializing with true will allow us to extract the removed indices sorfilter.setInputCloud (cloud_in); sorfilter.setMeanK (8); sorfilter.setStddevMulThresh (1.0); sorfilter.filter (*cloud_out); // The resulting cloud_out contains all points of cloud_in that have an average distance to their 8 nearest neighbors that is below the computed threshold // Using a standard deviation multiplier of 1.0 and assuming the average distances are normally distributed there is a 84.1% chance that a point will be an inlier indices_rem = sorfilter.getRemovedIndices (); // The indices_rem array indexes all points of cloud_in that are outliers pcl::StatisticalOutlierRemovalStatisticalOutlierRemoval uses point neighborhood statistics to filter outlier data.Definition: statistical_outlier_removal.h:81 pcl::StatisticalOutlierRemoval StatisticalOutlierRemoval uses point neighborhood statistics to filter outlier data. Definition: statistical_outlier_removal.h:81
Определение в строке 80 файла statistical_outlier_removal.h.
Документация по переопределённым типам
ConstPtr
| using pcl::StatisticalOutlierRemoval< PointT >::ConstPtr = shared_ptr<const StatisticalOutlierRemoval<PointT> > |
Определение в строке 91 файла statistical_outlier_removal.h.
PointCloud
| protected |
Определение в строке 83 файла statistical_outlier_removal.h.
PointCloudConstPtr
| protected |
Определение в строке 85 файла statistical_outlier_removal.h.
PointCloudPtr
| protected |
Определение в строке 84 файла statistical_outlier_removal.h.
Ptr
| using pcl::StatisticalOutlierRemoval< PointT >::Ptr = shared_ptr<StatisticalOutlierRemoval<PointT> > |
Определение в строке 90 файла statistical_outlier_removal.h.
SearcherPtr
| protected |
Определение в строке 86 файла statistical_outlier_removal.h.
Конструктор и деструктор
StatisticalOutlierRemoval()
| inline |
Конструктор.
- Параметры
-
[in] extract_removed_indices Установить в true, если нужно извлечь индексы удалённых точек (по умолчанию false).
Определение в строке 97 файла statistical_outlier_removal.h.
Ссылки на pcl::Filter< PointT >::filter_name_.
Документация по функциям-членам
applyFilter()
| inlineoverrideprotectedvirtual |
Отфильтрованные результаты индексируются массивом индексов.
- Параметры
-
[out] indices Результат индексов.
Реализует pcl::FilterIndices< PointT >.
Определение в строке 160 файла statistical_outlier_removal.h.
Ссылки на pcl::StatisticalOutlierRemoval< PointT >::applyFilterIndices().
applyFilterIndices()
| protected |
Результаты фильтрации индексируются массивом индексов.
- Параметры
-
[out] indices Полученные индексы.
Определение в строке 49 файла statistical_outlier_removal.hpp.
Ссылки на pcl::geometry::distance().
Используется в pcl::StatisticalOutlierRemoval< PointT >::applyFilter().
getMeanK()
| inline |
Получить количество ближайших соседей для оценки среднего расстояния.
- Возвращает
- Количество точек для оценки среднего расстояния.
Определение в строке 119 файла statistical_outlier_removal.h.
getStddevMulThresh()
| inline |
Получить множитель стандартного отклонения для расчета порога расстояния.
Порог расстояния будет равен: среднее + stddev_mult * stddev. Точки будут классифицированы как инлиеры или аутлиеры, если их среднее расстояние до соседей находится соответственно ниже или выше этого порога.
Определение в строке 140 файла statistical_outlier_removal.h.
setMeanK()
| inline |
Установить количество ближайших соседей для оценки среднего расстояния.
- Параметры
-
[in] nr_k Количество точек для оценки среднего расстояния.
Определение в строке 110 файла statistical_outlier_removal.h.
setStddevMulThresh()
| inline |
Установить множитель стандартного отклонения для расчета порога расстояния.
Порог расстояния будет равен: среднее + stddev_mult * stddev. Точки будут классифицированы как инлиеры или аутлиеры, если их среднее расстояние до соседей находится соответственно ниже или выше этого порога.
- Параметры
-
[in] stddev_mult Множитель стандартного отклонения.
Определение в строке 130 файла statistical_outlier_removal.h.
Документация для этого класса была сгенерирована из следующих файлов:
- pcl/filters/statistical_outlier_removal.h
- pcl/filters/impl/statistical_outlier_removal.hpp
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_statistical_outlier_removal.html