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} |
| 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::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:100 pcl::FilterIndices::filter void filter(Indices &indices) Calls the filtering method and returns the filtered point cloud indices. Definition: filter_indices.h:100 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:252 pcl::FrustumCulling::setNearPlaneDistance void setNearPlaneDistance(float np_dist) Set the near plane distance. Definition: frustum_culling.h:252 pcl::FrustumCulling::setVerticalFOVvoid setVerticalFOV(float vfov)Set the vertical field of view for the camera in degrees.Definition: frustum_culling.h:193 pcl::FrustumCulling::setVerticalFOV void setVerticalFOV(float vfov) Set the vertical field of view for the camera in degrees. Definition: frustum_culling.h:193 pcl::FrustumCulling::setFarPlaneDistancevoid setFarPlaneDistance(float fp_dist)Set the far plane distance.Definition: frustum_culling.h:274 pcl::FrustumCulling::setFarPlaneDistance void setFarPlaneDistance(float fp_dist) Set the far plane distance. Definition: frustum_culling.h:274 pcl::FrustumCulling::setHorizontalFOVvoid setHorizontalFOV(float hfov)Set the horizontal field of view for the camera in degrees.Definition: frustum_culling.h:133 pcl::FrustumCulling::setHorizontalFOV void setHorizontalFOV(float hfov) Set the horizontal field of view for the camera in degrees. Definition: frustum_culling.h:133 pcl::FrustumCulling::setCameraPosevoid setCameraPose(const Eigen::Matrix4f &camera_pose)Set the pose of the camera w.r.t the origin.Definition: frustum_culling.h:116 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:116 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.
Описание псевдонимов типов-членов
ConstPtr
| using pcl::FrustumCulling< PointT >::ConstPtr = shared_ptr<const FrustumCulling<PointT> > |
Определение в строке 85 файла frustum_culling.h.
Ptr
| using 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 |
Получить позу камеры относительно начала координат.
Определение в строке 123 файла frustum_culling.h.
getFarPlaneDistance()
| inline |
Получить расстояние до дальней плоскости.
Определение в строке 286 файла frustum_culling.h.
getHorizontalFOV() [1/2]
| inline |
Получить горизонтальное поле зрения камеры в градусах.
Определение в строке 169 файла frustum_culling.h.
getHorizontalFOV() [2/2]
| inline |
Получить горизонтальное поле зрения камеры в градусах.
Определение в строке 182 файла frustum_culling.h.
getNearPlaneDistance()
| inline |
Получить расстояние до ближней плоскости.
Определение в строке 264 файла frustum_culling.h.
getRegionOfInterest()
| inline |
Получить область интереса (ROI) в нормализованных значениях.
- Параметры
-
[in] roi_x Координата X центра ROI [in] roi_y Координата Y центра ROI [in] roi_w Ширина ROI [in] roi_h Высота ROI
Определение в строке 327 файла frustum_culling.h.
getVerticalFOV() [1/2]
| inline |
Получить вертикальное поле зрения камеры в градусах.
Определение в строке 229 файла frustum_culling.h.
getVerticalFOV() [2/2]
| inline |
Получить вертикальное поле зрения камеры в градусах.
Определение в строке 242 файла 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);
Определение в строке 116 файла frustum_culling.h.
setFarPlaneDistance()
| inline |
Задать расстояние до дальней плоскости.
- Параметры
-
[in] fp_dist расстояние до дальней плоскости. Можно задать std::numeric_limits<float>::max(), тогда точки не будут отфильтрованы дальней плоскостью.
Определение в строке 274 файла 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).
Определение в строке 155 файла frustum_culling.h.
setHorizontalFOV() [2/2]
| inline |
Задать горизонтальный угол обзора камеры в градусах.
- Параметры
-
[in] hfov угол обзора. Примечание: setHorizontalFOV(60.0) эквивалентен setHorizontalFOV(-30.0, 30.0).
Определение в строке 133 файла frustum_culling.h.
setNearPlaneDistance()
| inline |
Задать расстояние до ближней плоскости.
- Параметры
-
[in] np_dist расстояние до ближней плоскости. Можно задать 0, чтобы отключить фильтрацию по ближней плоскости и получить прямоугольную пирамиду вместо усечённой пирамиды.
Определение в строке 252 файла frustum_culling.h.
setRegionOfInterest()
| inline |
Задать область интереса (ROI) в нормализованных значениях.
Значения ROI по умолчанию: roi_{x, y} = 0.5, roi_{w, h} = 1.0 Это соответствует максимальному углу обзора и возвращает все точки в усечённой пирамиде. Может использоваться для выделения объектов на основе их 2D ограничивающих рамок, полученных при обнаружении объектов.
- Параметры
-
[in] roi_x положение центра ROI по оси X [in] roi_y положение центра ROI по оси Y [in] roi_w ширина ROI [in] roi_h высота ROI
Определение в строке 303 файла 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).
Определение в строке 215 файла frustum_culling.h.
setVerticalFOV() [2/2]
| inline |
Задать вертикальный угол обзора камеры в градусах.
- Параметры
-
[in] vfov угол обзора. Примечание: setVerticalFOV(60.0) эквивалентен setVerticalFOV(-30.0, 30.0).
Определение в строке 193 файла 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