FrustumCulling фильтрует точки, находящиеся внутри усечённого конуса, заданного положением и полем зрения камеры. Подробнее...
#include <pcl/filters/frustum_culling.h>
Публичные типы | |
| using | Ptr = shared_ptr< FrustumCulling< PointT > > |
| using | ConstPtr = shared_ptr< const FrustumCulling< 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 |
Публичные члены-функции | |
| FrustumCulling (bool extract_removed_indices=false) | |
| void | setCameraPose (const Eigen::Matrix4f &camera_pose) |
| Установить положение камеры относительно начала координат. Подробнее... |
|
| Eigen::Matrix4f | getCameraPose () const |
| Получить положение камеры относительно начала координат. Подробнее... |
|
| void | setHorizontalFOV (float hfov) |
| Установить горизонтальное поле обзора камеры в градусах. Подробнее... |
|
| void | setHorizontalFOV (float fov_left_bound, float fov_right_bound) |
| Установить горизонтальное поле обзора камеры в градусах. Подробнее... |
|
| float | getHorizontalFOV () const |
| Получить горизонтальное поле обзора камеры в градусах. Подробнее... |
|
| void | getHorizontalFOV (float &fov_left_bound, float &fov_right_bound) const |
| Получить горизонтальное поле обзора камеры в градусах. Подробнее... |
|
| void | setVerticalFOV (float vfov) |
| Установить вертикальное поле обзора камеры в градусах. Подробнее... |
|
| void | setVerticalFOV (float fov_lower_bound, float fov_upper_bound) |
| Установить вертикальное поле обзора камеры в градусах. Подробнее... |
|
| float | getVerticalFOV () const |
| Получить вертикальное поле обзора камеры в градусах. Подробнее... |
|
| void | getVerticalFOV (float &fov_lower_bound, float &fov_upper_bound) const |
| Получить вертикальное поле обзора камеры в градусах. Подробнее... |
|
| void | setNearPlaneDistance (float np_dist) |
| Установить расстояние до ближней плоскости. Подробнее... |
|
| float | getNearPlaneDistance () const |
| Получить расстояние до ближней плоскости. Подробнее... |
|
| void | setFarPlaneDistance (float fp_dist) |
| Установить расстояние до дальней плоскости. Подробнее... |
|
| float | getFarPlaneDistance () const |
| Получить расстояние до дальней плоскости. Подробнее... |
|
| void | setRegionOfInterest (float roi_x, float roi_y, float roi_w, float roi_h) |
| Установить область интереса (ROI) в нормализованных значениях. Подробнее... |
|
| void | getRegionOfInterest (float &roi_x, float &roi_y, float &roi_w, float &roi_h) const |
| Получить область интереса (ROI) в нормализованных значениях. Подробнее... |
|
|
| |
| 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 для сокращения кода. Подробнее... |
|
Защищенные члены | |
| void | applyFilter (Indices &indices) override |
| Образец индексов точек. Подробнее... |
|
|
| |
| 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::FrustumCulling< PointT >
FrustumCulling фильтрует точки внутри усеченной пирамиды, заданной позой и полем зрения камеры.
Пример кода:
pcl::PointCloud <pcl::PointXYZ>::Ptr source; // .. read or fill the source cloud pcl::FrustumCulling<pcl::PointXYZ> fc; fc.setInputCloud (source); fc.setVerticalFOV (45); fc.setHorizontalFOV (60); fc.setNearPlaneDistance (5.0); fc.setFarPlaneDistance (15); Eigen::Matrix4f camera_pose; // .. read or input the camera pose from a registration algorithm. fc.setCameraPose (camera_pose); pcl::PointCloud <pcl::PointXYZ> target; fc.filter (target); pcl::FilterIndices::filtervoid filter(Indices &indices)Calls the filtering method and returns the filtered point cloud indices.Definition: filter_indices.h:101 pcl::FilterIndices::filter void filter(Indices &indices) Calls the filtering method and returns the filtered point cloud indices. Definition: filter_indices.h:101 pcl::FrustumCullingFrustumCulling filters points inside a frustum given by pose and field of view of the camera.Definition: frustum_culling.h:77 pcl::FrustumCulling FrustumCulling filters points inside a frustum given by pose and field of view of the camera. Definition: frustum_culling.h:77 pcl::FrustumCulling::setNearPlaneDistancevoid setNearPlaneDistance(float np_dist)Set the near plane distance.Definition: frustum_culling.h:262 pcl::FrustumCulling::setNearPlaneDistance void setNearPlaneDistance(float np_dist) Set the near plane distance. Definition: frustum_culling.h:262 pcl::FrustumCulling::setVerticalFOVvoid setVerticalFOV(float vfov)Set the vertical field of view for the camera in degrees.Definition: frustum_culling.h:203 pcl::FrustumCulling::setVerticalFOV void setVerticalFOV(float vfov) Set the vertical field of view for the camera in degrees. Definition: frustum_culling.h:203 pcl::FrustumCulling::setFarPlaneDistancevoid setFarPlaneDistance(float fp_dist)Set the far plane distance.Definition: frustum_culling.h:284 pcl::FrustumCulling::setFarPlaneDistance void setFarPlaneDistance(float fp_dist) Set the far plane distance. Definition: frustum_culling.h:284 pcl::FrustumCulling::setHorizontalFOVvoid setHorizontalFOV(float hfov)Set the horizontal field of view for the camera in degrees.Definition: frustum_culling.h:143 pcl::FrustumCulling::setHorizontalFOV void setHorizontalFOV(float hfov) Set the horizontal field of view for the camera in degrees. Definition: frustum_culling.h:143 pcl::FrustumCulling::setCameraPosevoid setCameraPose(const Eigen::Matrix4f &camera_pose)Set the pose of the camera w.r.t the origin.Definition: frustum_culling.h:126 pcl::FrustumCulling::setCameraPose void setCameraPose(const Eigen::Matrix4f &camera_pose) Set the pose of the camera w.r.t the origin. Definition: frustum_culling.h:126 pcl::PCLBase::setInputCloudvirtual void setInputCloud(const PointCloudConstPtr &cloud)Provide a pointer to the input dataset.Definition: pcl_base.hpp:65 pcl::PCLBase::setInputCloud virtual void setInputCloud(const PointCloudConstPtr &cloud) Provide a pointer to the input dataset. Definition: pcl_base.hpp:65 pcl::PointCloud< pcl::PointXYZ > pcl::PointCloud< pcl::PointXYZ > pcl::PointCloud::Ptrshared_ptr< PointCloud< PointT > > PtrDefinition: point_cloud.h:413 pcl::PointCloud::Ptr shared_ptr< PointCloud< PointT > > Ptr Definition: point_cloud.h:413
Определение в строке 76 файла frustum_culling.h.
Документация по typedef-членам
ConstPtr
| используя pcl::FrustumCulling< PointT >::ConstPtr = shared_ptr<const FrustumCulling<PointT> > |
Определение в строке 85 файла frustum_culling.h.
Ptr
| используя pcl::FrustumCulling< PointT >::Ptr = shared_ptr<FrustumCulling<PointT> > |
Определение в строке 84 файла frustum_culling.h.
Документация по конструкторам и деструкторам
FrustumCulling()
| inline |
Определение в строке 90 файла frustum_culling.h.
Ссылки на pcl::Filter< PointT >::filter_name_.
Документация по членам-функциям
applyFilter()
| overrideprotectedvirtual |
Образец индексов точек.
- Параметры
-
[out] indices результирующие индексы облака точек
Реализует pcl::FilterIndices< PointT >.
Определение в строке 46 файла frustum_culling.hpp.
Ссылки на M_PI.
getCameraPose()
| inline |
Получить положение камеры относительно начала координат.
Определение в строке 133 файла frustum_culling.h.
getFarPlaneDistance()
| inline |
Получить расстояние до дальней плоскости.
Определение в строке 296 файла frustum_culling.h.
getHorizontalFOV() [1/2]
| inline |
Получить горизонтальное поле зрения камеры в градусах.
Определение в строке 179 файла frustum_culling.h.
getHorizontalFOV() [2/2]
| inline |
Получить горизонтальное поле зрения камеры в градусах.
Определение в строке 192 файла frustum_culling.h.
getNearPlaneDistance()
| inline |
Получить расстояние до ближней плоскости.
Определение в строке 274 файла frustum_culling.h.
getRegionOfInterest()
| inline |
Получить область интереса (ROI) в нормализованных значениях.
- Параметры
-
[in] roi_x Центральное положение ROI по оси X [in] roi_y Центральное положение ROI по оси Y [in] roi_w Ширина ROI [in] roi_h Высота ROI
Определение в строке 337 файла frustum_culling.h.
getVerticalFOV() [1/2]
| inline |
Получить вертикальное поле зрения камеры в градусах.
Определение в строке 239 файла frustum_culling.h.
getVerticalFOV() [2/2]
| inline |
Получить вертикальное поле обзора камеры в градусах.
Определение в строке 252 файла frustum_culling.h.
setCameraPose()
| inline |
Установить положение камеры относительно начала координат.
- Параметры
-
[in] camera_pose положение камеры
Примечание: предполагается система координат, где X — направление вперёд, Y — вверх, а Z — вправо. Для перехода от традиционной системы координат камеры (X вправо, Y вниз, Z вперёд) можно использовать:
Eigen::Matrix4f pose_orig = //pose in camera coordinates Eigen::Matrix4f cam2robot; cam2robot << 0, 0, 1, 0 0,-1, 0, 0 1, 0, 0, 0 0, 0, 0, 1; Eigen::Matrix4f pose_new = pose_orig * cam2robot; fc.setCameraPose (pose_new);
Определение в строке 126 файла frustum_culling.h.
setFarPlaneDistance()
| inline |
Установить расстояние до дальней плоскости.
- Параметры
-
[in] fp_dist расстояние до дальней плоскости. Можно установить значение std::numeric_limits<float>::max(), тогда точки не будут отфильтрованы по дальней плоскости.
Определение в строке 284 файла frustum_culling.h.
setHorizontalFOV() [1/2]
| inline |
Установить горизонтальное поле обзора камеры в градусах.
- Параметры
-
[in] fov_left_bound левая граница горизонтального поля обзора [in] fov_right_bound правая граница горизонтального поля обзора. Значения могут быть положительными или отрицательными. Отрицательное значение означает, что камера смотрит влево, а положительное — вправо. В общем случае fov_left_bound следует устанавливать отрицательным значением, если оно установлено положительным, камера будет смотреть только вправо. Также обратите внимание, что setHorizontalFOV(-30.0, 30.0) эквивалентно setHorizontalFOV(60.0).
Определение в строке 165 файла frustum_culling.h.
setHorizontalFOV() [2/2]
| inline |
Установить горизонтальное поле обзора камеры в градусах.
- Параметры
-
[in] hfov поле обзора. Примечание: setHorizontalFOV(60.0) эквивалентно setHorizontalFOV(-30.0, 30.0).
Определение в строке 143 файла frustum_culling.h.
setNearPlaneDistance()
| inline |
Установить расстояние до ближней плоскости.
- Параметры
-
[in] np_dist расстояние до ближней плоскости. Можно установить значение 0 для отключения фильтрации по ближней плоскости и извлечения прямоугольной пирамиды вместо усечённого конуса.
Определение в строке 262 файла frustum_culling.h.
setRegionOfInterest()
| inline |
Установить область интереса (ROI) в нормированных значениях.
Значение по умолчанию для ROI: roi_{x, y} = 0.5, roi_{w, h} = 1.0 Это соответствует максимальному полю обзора и возвращает все точки в усечённом конусе. Может использоваться для выделения объектов на основе 2D границ, определяемых, например, методом обнаружения объектов.
- Параметры
-
[in] roi_x координата X центра ROI [in] roi_y координата Y центра ROI [in] roi_w ширина ROI [in] roi_h высота ROI
Определение в строке 313 файла frustum_culling.h.
setVerticalFOV() [1/2]
| inline |
Установить вертикальное поле зрения камеры в градусах.
- Параметры
-
[in] fov_lower_bound нижняя граница вертикального поля зрения [in] fov_upper_bound верхняя граница вертикального поля зрения Примечание: Границы могут быть положительными или отрицательными значениями. Отрицательное значение означает, что камера смотрит вниз, а положительное — вверх. В общих случаях fov_lower_bound следует устанавливать как отрицательное значение, если оно установлено как положительное, камера будет смотреть только вверх. Также обратите внимание, что setVerticalFOV(-30.0, 30.0) эквивалентно setVerticalFOV(60.0).
Определение в строке 225 файла frustum_culling.h.
setVerticalFOV() [2/2]
| inline |
Установить вертикальное поле зрения камеры в градусах.
- Параметры
-
[in] vfov поле зрения Примечание: setVerticalFOV(60.0) эквивалентно setVerticalFOV(-30.0, 30.0).
Определение в строке 203 файла frustum_culling.h.
Документация для этого класса была сгенерирована из следующих файлов:
- pcl/filters/frustum_culling.h
- pcl/filters/impl/frustum_culling.hpp
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_frustum_culling.html