StatisticalOutlierRemoval использует статистику окрестностей точек для фильтрации выбросов. Подробнее...
#include <pcl/filters/statistical_outlier_removal.h>
Общедоступные типы | |
| 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 () |
| Получить множитель стандартного отклонения для вычисления порогового значения расстояния. Подробнее... |
|
| void | setSearchMethod (const SearcherPtr &searcher) |
| Передать указатель на объект поиска. Подробнее... |
|
|
| |
| 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) |
| Вызывает метод фильтрации и возвращает отфильтрованный набор данных в выходном параметре. Подробнее... |
|
|
| |
| 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 |
| Результаты фильтрации представлены массивом индексов. Подробнее... |
|
| void | applyFilterIndices (Indices &indices) |
| Результаты фильтрации представлены массивом индексов. Подробнее... |
|
|
| |
| void | applyFilter (PointCloud &output) override |
| Абстрактный метод фильтрации облака точек. Подробнее... |
|
|
| |
| const std::string & | getClassName () const |
| Получить строковое представление имени этого класса. Подробнее... |
|
|
| |
| bool | initCompute () |
| Этот метод следует вызывать перед началом непосредственных вычислений. Подробнее... |
|
| bool | deinitCompute () |
| Этот метод следует вызывать после завершения непосредственных вычислений. Подробнее... |
|
Дополнительные унаследованные члены | |
|
| |
| 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>
class pcl::StatisticalOutlierRemoval< PointT >
StatisticalOutlierRemoval использует статистические характеристики окрестности точек для фильтрации выбросов.
Алгоритм дважды обходит весь входной набор данных. Во время первого обхода для каждой точки вычисляется среднее расстояние до её k ближайших соседей. Значение k можно задать с помощью setMeanK(). Затем вычисляются среднее значение и стандартное отклонение всех этих расстояний, чтобы определить пороговое расстояние. Пороговое расстояние равно: mean + stddev_mult * stddev. Множитель стандартного отклонения можно задать с помощью setStddevMulThresh(). Во время следующего обхода точки классифицируются как принадлежащие к выбросам или к нормальным точкам, если среднее расстояние до соседей соответственно превышает или не превышает этот порог.
Соседи для каждой анализируемой точки ищутся среди ВСЕХ точек, переданных в setInputCloud(), а не только среди точек, индексы которых заданы через setIndices(). Метод setIndices() задаёт только точки, которые будут перебираться в качестве точек запроса при поиске.
Дополнительная информация:
- R. B. Rusu, Z. C. Marton, N. Blodow, M. Dolha, and M. Beetz. К созданию карт объектов на основе 3D-облаков точек для бытовых помещений. Журнал Robotics and Autonomous Systems (специальный выпуск о семантических знаниях), 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:82 pcl::StatisticalOutlierRemoval StatisticalOutlierRemoval uses point neighborhood statistics to filter outlier data. Definition: statistical_outlier_removal.h:82
- См. также
- RadiusOutlierRemoval
Определение в строке 81 файла statistical_outlier_removal.h.
Документация псевдонимов типов-членов
ConstPtr
| using pcl::StatisticalOutlierRemoval< PointT >::ConstPtr = shared_ptr<const StatisticalOutlierRemoval<PointT> > |
Определение в строке 92 файла statistical_outlier_removal.h.
PointCloud
| protected |
Определение в строке 84 файла statistical_outlier_removal.h.
PointCloudConstPtr
|
Определение в строке 86 файла statistical_outlier_removal.h.
PointCloudPtr
|
Определение в строке 85 файла statistical_outlier_removal.h.
Ptr
| using pcl::StatisticalOutlierRemoval< PointT >::Ptr = shared_ptr<StatisticalOutlierRemoval<PointT> > |
Определение в строке 91 файла statistical_outlier_removal.h.
SearcherPtr
|
Определение в строке 87 файла statistical_outlier_removal.h.
Документация конструктора и деструктора
StatisticalOutlierRemoval()
| inline |
Конструктор.
- Параметры
-
[in] extract_removed_indices Установите значение true, если нужно иметь возможность получить индексы удаляемых точек (по умолчанию = false).
Определение в строке 98 файла statistical_outlier_removal.h.
Ссылки на pcl::Filter< PointT >::filter_name_.
Документация функций-членов
applyFilter()
| inlineoverrideprotectedvirtual |
Результаты фильтрации представлены массивом индексов.
- Параметры
-
[out] indices Полученные индексы.
Реализует pcl::FilterIndices< PointT >.
Определение в строке 165 файла 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 |
Получить количество ближайших соседей, используемое для оценки среднего расстояния.
- Возвращает
- Количество точек, используемое для оценки среднего расстояния.
Определение в строке 118 файла statistical_outlier_removal.h.
getStddevMulThresh()
| inline |
Получить множитель стандартного отклонения для вычисления порога расстояния.
Порог расстояния будет равен: mean + stddev_mult * stddev. Точки будут классифицированы как внутренние точки или выбросы, если их среднее расстояние до соседей соответственно ниже или выше этого порога.
Определение в строке 139 файла statistical_outlier_removal.h.
setMeanK()
| inline |
Задать количество ближайших соседей, используемых для оценки среднего расстояния.
- Параметры
-
[in] nr_k Количество точек, используемых для оценки среднего расстояния.
Определение в строке 109 файла statistical_outlier_removal.h.
setSearchMethod()
| inline |
Передать указатель на объект поиска.
Вызов этого метода необязателен. Если его не вызвать, метод поиска будет выбран автоматически.
- Параметры
-
[in] searcher указатель на объект пространственного поиска.
Определение в строке 149 файла statistical_outlier_removal.h.
setStddevMulThresh()
| inline |
Задать множитель стандартного отклонения для вычисления порога расстояния.
Порог расстояния будет равен: mean + stddev_mult * stddev. Точки будут классифицированы как внутренние точки или выбросы, если их среднее расстояние до соседей соответственно ниже или выше этого порога.
- Параметры
-
[in] stddev_mult Множитель стандартного отклонения.
Определение в строке 129 файла 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