Подробное описание
Обзор
Библиотека pcl_visualization была создана для быстрого прототипирования и визуализации результатов алгоритмов, работающих с данными облаков точек 3D. Аналогично процедурам highgui библиотеки OpenCV для отображения 2D изображений и рисования простых 2D фигур на экране, библиотека предлагает:
- методы для визуализации и задания визуальных свойств (цвета, размеры точек, непрозрачность и т.д.) для наборов данных облаков точек n-D в формате pcl::PointCloud<T>;
- методы для рисования простых 3D фигур на экране (например, цилиндров, сфер, линий, многоугольников и т.д.) либо по набору точек, либо по параметрическим уравнениям;
- модуль визуализации гистограмм (PCLHistogramVisualizer) для 2D графиков;
- множество обработчиков геометрии Geometry и цвета для наборов данных pcl::PointCloud<T>;
- модуль визуализации pcl::RangeImage.
Для реализации собственных визуализаторов, ознакомьтесь с тестами и примерами, которые сопровождают библиотеку.
Требования
- common
- VTK
- io
- kdtree
- RangeImage
Файлы | |
| файл | shapes.h |
| Определяет методы для создания 3D фигур из параметрических моделей. |
|
Функции | |
| PCL_EXPORTS void | pcl::visualization::getCorrespondingPointCloud (vtkPolyData *src, const pcl::PointCloud< pcl::PointXYZ > &tgt, pcl::Indices &indices) |
| Получить список соответствующих индексов для набора точек vtk из pcl::PointCloud. Подробнее... |
|
| PCL_EXPORTS bool | pcl::visualization::savePointData (vtkPolyData *data, const std::string &out_file, const CloudActorMapPtr &actors) |
| Сохраняет данные vtk-форматированных точечных облаков в набор файлов, в зависимости от того, поступают ли данные из ранее загруженных файлов PCD. Подробнее... |
|
| template<typename PointT > | |
| vtkSmartPointer< vtkDataSet > | pcl::visualization::createPolygon (const typename pcl::PointCloud< PointT >::ConstPtr &cloud) |
| Создать 3d полилинию из набора точек. Подробнее... |
|
| template<typename PointT > | |
| vtkSmartPointer< vtkDataSet > | pcl::visualization::createPolygon (const pcl::PlanarPolygon< PointT > &planar_polygon) |
| Создать 3d полилинию из набора точек на границе плоской области. Подробнее... |
|
| PCL_EXPORTS vtkSmartPointer< vtkDataSet > | pcl::visualization::createLine (const Eigen::Vector4f &pt1, const Eigen::Vector4f &pt2) |
| Создать линию по двум точкам. Подробнее... |
|
| PCL_EXPORTS vtkSmartPointer< vtkDataSet > | pcl::visualization::createSphere (const Eigen::Vector4f ¢er, double radius, int res=10) |
| Создать сферу по центру и радиусу. Подробнее... |
|
| PCL_EXPORTS vtkSmartPointer< vtkDataSet > | pcl::visualization::createCylinder (const pcl::ModelCoefficients &coefficients, int numsides=30) |
| Создать цилиндр по набору коэффициентов модели. Подробнее... |
|
| PCL_EXPORTS vtkSmartPointer< vtkDataSet > | pcl::visualization::createSphere (const pcl::ModelCoefficients &coefficients, int res=10) |
| Создать сферу по набору коэффициентов модели. Подробнее... |
|
| PCL_EXPORTS vtkSmartPointer< vtkDataSet > | pcl::visualization::createLine (const pcl::ModelCoefficients &coefficients) |
| Создать линию по набору коэффициентов модели. Подробнее... |
|
| PCL_EXPORTS vtkSmartPointer< vtkDataSet > | pcl::visualization::createPlane (const pcl::ModelCoefficients &coefficients) |
| Создать плоскую форму по набору коэффициентов модели. Подробнее... |
|
| PCL_EXPORTS vtkSmartPointer< vtkDataSet > | pcl::visualization::createPlane (const pcl::ModelCoefficients &coefficients, double x, double y, double z) |
| Создать плоскую форму по набору коэффициентов модели. Подробнее... |
|
| PCL_EXPORTS vtkSmartPointer< vtkDataSet > | pcl::visualization::create2DCircle (const pcl::ModelCoefficients &coefficients, double z=0.0) |
| Создать 2d круг по набору коэффициентов модели. Подробнее... |
|
| PCL_EXPORTS vtkSmartPointer< vtkDataSet > | pcl::visualization::createCone (const pcl::ModelCoefficients &coefficients) |
| Создать конус по набору коэффициентов модели. Подробнее... |
|
| PCL_EXPORTS vtkSmartPointer< vtkDataSet > | pcl::visualization::createCube (const pcl::ModelCoefficients &coefficients) |
| Создать куб по набору коэффициентов модели. Подробнее... |
|
| PCL_EXPORTS vtkSmartPointer< vtkDataSet > | pcl::visualization::createCube (const Eigen::Vector3f &translation, const Eigen::Quaternionf &rotation, double width, double height, double depth) |
| Создать куб по набору коэффициентов модели. Подробнее... |
|
| PCL_EXPORTS vtkSmartPointer< vtkDataSet > | pcl::visualization::createEllipsoid (const Eigen::Isometry3d &transform, double radius_x, double radius_y, double radius_z) |
| Создать эллипсоид по заданным параметрам. Подробнее... |
|
Документация функций
create2DCircle()
| PCL_EXPORTS vtkSmartPointer<vtkDataSet> pcl::visualization::create2DCircle | ( | const pcl::ModelCoefficients & | coefficients, |
| double |
z = 0.0 | ||
| ) |
#include <pcl/visualization/common/shapes.h>
Создать 2D круг по набору коэффициентов модели.
- Параметры
-
[in] coefficients коэффициенты модели (x, y, радиус) [in] z (необязательно) указать значение z (по умолчанию: 0)
// The following are given (or computed using sample consensus techniques -- see SampleConsensusModelCircle2D) // float x, y, radius; pcl::ModelCoefficients circle_coeff; circle_coeff.values.resize (3); // We need 3 values circle_coeff.values[0] = x; circle_coeff.values[1] = y; circle_coeff.values[2] = radius; vtkSmartPointer<vtkDataSet> data = pcl::visualization::create2DCircle (circle_coeff, z); vtkSmartPointerDefinition: actor_map.h:51 vtkSmartPointer Definition: actor_map.h:51 pcl::visualization::create2DCirclePCL_EXPORTS vtkSmartPointer< vtkDataSet > create2DCircle(const pcl::ModelCoefficients &coefficients, double z=0.0)Create a 2d circle shape from a set of model coefficients. pcl::visualization::create2DCircle PCL_EXPORTS vtkSmartPointer< vtkDataSet > create2DCircle(const pcl::ModelCoefficients &coefficients, double z=0.0) Create a 2d circle shape from a set of model coefficients. pcl::ModelCoefficientsDefinition: ModelCoefficients.h:12 pcl::ModelCoefficients Definition: ModelCoefficients.h:12 pcl::ModelCoefficients::valuesstd::vector< float > valuesDefinition: ModelCoefficients.h:17 pcl::ModelCoefficients::values std::vector< float > values Definition: ModelCoefficients.h:17
createCone()
| PCL_EXPORTS vtkSmartPointer<vtkDataSet> pcl::visualization::createCone | ( | const pcl::ModelCoefficients & | coefficients | ) |
#include <pcl/visualization/common/shapes.h>
Создать конус по набору коэффициентов модели.
- Параметры
-
[in] coefficients коэффициенты конуса (вершина конуса, направление оси, угол)
// The following are given (or computed using sample consensus techniques -- see SampleConsensusModelCone) // Eigen::Vector3f cone_apex, axis_direction; // float angle; // Note: The height of the cone is set using the magnitude of the axis_direction vector. pcl::ModelCoefficients cone_coeff; cone_coeff.values.resize (7); // We need 7 values cone_coeff.values[0] = cone_apex.x (); cone_coeff.values[1] = cone_apex.y (); cone_coeff.values[2] = cone_apex.z (); cone_coeff.values[3] = axis_direction.x (); cone_coeff.values[4] = axis_direction.y (); cone_coeff.values[5] = axis_direction.z (); cone_coeff.values[6] = angle (); // degrees vtkSmartPointer<vtkDataSet> data = pcl::visualization::createCone (cone_coeff); pcl::visualization::createConePCL_EXPORTS vtkSmartPointer< vtkDataSet > createCone(const pcl::ModelCoefficients &coefficients)Create a cone shape from a set of model coefficients. pcl::visualization::createCone PCL_EXPORTS vtkSmartPointer< vtkDataSet > createCone(const pcl::ModelCoefficients &coefficients) Create a cone shape from a set of model coefficients.
createCube() [1/2]
| PCL_EXPORTS vtkSmartPointer<vtkDataSet> pcl::visualization::createCube | ( | const Eigen::Vector3f & | translation, |
| const Eigen::Quaternionf & | rotation, | ||
| double | width, | ||
| double | height, | ||
| double | depth | ||
| ) |
#include <pcl/visualization/common/shapes.h>
Создать куб по набору коэффициентов модели.
- Параметры
-
[in] translation сдвиг, применяемый к кубу из 0,0,0 [in] rotation вращение, основанное на кватернионе, применяемое к кубу [in] width ширина куба [in] height высота куба [in] depth глубина куба
createCube() [2/2]
| PCL_EXPORTS vtkSmartPointer<vtkDataSet> pcl::visualization::createCube | ( | const pcl::ModelCoefficients & | coefficients | ) |
#include <pcl/visualization/common/shapes.h>
Создать куб по набору коэффициентов модели.
- Параметры
-
[in] coefficients коэффициенты куба (Tx, Ty, Tz, Qx, Qy, Qz, Qw, ширина, высота, глубина)
createCylinder()
| PCL_EXPORTS vtkSmartPointer<vtkDataSet> pcl::visualization::createCylinder | ( | const pcl::ModelCoefficients & | coefficients, |
| int |
numsides = 30 | ||
| ) |
#include <pcl/visualization/common/shapes.h>
Создать цилиндр по набору коэффициентов модели.
- Параметры
-
[in] coefficients коэффициенты модели (точка на оси, направление оси, радиус) [in] numsides (необязательно) количество сторон, используемых для отрисовки цилиндра
// The following are given (or computed using sample consensus techniques -- see SampleConsensusModelCylinder) // Eigen::Vector3f pt_on_axis, axis_direction; // float radius; pcl::ModelCoefficients cylinder_coeff; cylinder_coeff.values.resize (7); // We need 7 values cylinder_coeff.values[0] = pt_on_axis.x (); cylinder_coeff.values[1] = pt_on_axis.y (); cylinder_coeff.values[2] = pt_on_axis.z (); cylinder_coeff.values[3] = axis_direction.x (); cylinder_coeff.values[4] = axis_direction.y (); cylinder_coeff.values[5] = axis_direction.z (); cylinder_coeff.values[6] = radius; vtkSmartPointer<vtkDataSet> data = pcl::visualization::createCylinder (cylinder_coeff, numsides); pcl::visualization::createCylinderPCL_EXPORTS vtkSmartPointer< vtkDataSet > createCylinder(const pcl::ModelCoefficients &coefficients, int numsides=30)Create a cylinder shape from a set of model coefficients. pcl::visualization::createCylinder PCL_EXPORTS vtkSmartPointer< vtkDataSet > createCylinder(const pcl::ModelCoefficients &coefficients, int numsides=30) Create a cylinder shape from a set of model coefficients.
createEllipsoid()
| PCL_EXPORTS vtkSmartPointer<vtkDataSet> pcl::visualization::createEllipsoid | ( | const Eigen::Isometry3d & | transform, |
| double | radius_x, | ||
| double | radius_y, | ||
| double | radius_z | ||
| ) |
#include <pcl/visualization/common/shapes.h>
Создать эллипсоид по заданным параметрам.
- Parameters
-
[in] transform преобразование, применяемое к эллипсоиду из 0,0,0 [in] radius_x радиус эллипсоида вдоль локальной оси x [in] radius_y радиус эллипсоида вдоль локальной оси y [in] radius_z радиус эллипсоида вдоль локальной оси z
createLine() [1/2]
| PCL_EXPORTS vtkSmartPointer<vtkDataSet> pcl::visualization::createLine | ( | const Eigen::Vector4f & | pt1, |
| const Eigen::Vector4f & | pt2 | ||
| ) |
#include <pcl/visualization/common/shapes.h>
Создать линию по двум точкам.
- Parameters
-
[in] pt1 первая точка на линии [in] pt2 конечная точка на линии
Используется в pcl::visualization::PCLVisualizer::addLine().
createLine() [2/2]
| PCL_EXPORTS vtkSmartPointer<vtkDataSet> pcl::visualization::createLine | ( | const pcl::ModelCoefficients & | coefficients | ) |
#include <pcl/visualization/common/shapes.h>
Создать линию по набору коэффициентов модели.
- Parameters
-
[in] coefficients коэффициенты модели (точка_на_линии, направление_линии)
// The following are given (or computed using sample consensus techniques -- see SampleConsensusModelLine) // Eigen::Vector3f point_on_line, line_direction; pcl::ModelCoefficients line_coeff; line_coeff.values.resize (6); // We need 6 values line_coeff.values[0] = point_on_line.x (); line_coeff.values[1] = point_on_line.y (); line_coeff.values[2] = point_on_line.z (); line_coeff.values[3] = line_direction.x (); line_coeff.values[4] = line_direction.y (); line_coeff.values[5] = line_direction.z (); vtkSmartPointer<vtkDataSet> data = pcl::visualization::createLine (line_coeff); pcl::visualization::createLinePCL_EXPORTS vtkSmartPointer< vtkDataSet > createLine(const Eigen::Vector4f &pt1, const Eigen::Vector4f &pt2)Create a line shape from two points. pcl::visualization::createLine PCL_EXPORTS vtkSmartPointer< vtkDataSet > createLine(const Eigen::Vector4f &pt1, const Eigen::Vector4f &pt2) Create a line shape from two points.
createPlane() [1/2]
| PCL_EXPORTS vtkSmartPointer<vtkDataSet> pcl::visualization::createPlane | ( | const pcl::ModelCoefficients & | coefficients | ) |
#include <pcl/visualization/common/shapes.h>
Создать плоскую фигуру по набору коэффициентов модели.
- Parameters
-
[in] coefficients коэффициенты модели (a, b, c, d с ax+by+cz+d=0)
// The following are given (or computed using sample consensus techniques -- see SampleConsensusModelPlane) // Eigen::Vector4f plane_parameters; pcl::ModelCoefficients plane_coeff; plane_coeff.values.resize (4); // We need 4 values plane_coeff.values[0] = plane_parameters.x (); plane_coeff.values[1] = plane_parameters.y (); plane_coeff.values[2] = plane_parameters.z (); plane_coeff.values[3] = plane_parameters.w (); vtkSmartPointer<vtkDataSet> data = pcl::visualization::createPlane (plane_coeff); pcl::visualization::createPlanePCL_EXPORTS vtkSmartPointer< vtkDataSet > createPlane(const pcl::ModelCoefficients &coefficients)Create a planar shape from a set of model coefficients. pcl::visualization::createPlane PCL_EXPORTS vtkSmartPointer< vtkDataSet > createPlane(const pcl::ModelCoefficients &coefficients) Create a planar shape from a set of model coefficients.
createPlane() [2/2]
| PCL_EXPORTS vtkSmartPointer<vtkDataSet> pcl::visualization::createPlane | ( | const pcl::ModelCoefficients & | coefficients, |
| double | x, | ||
| double | y, | ||
| double | z | ||
| ) |
#include <pcl/visualization/common/shapes.h>
Создать плоскую фигуру по набору коэффициентов модели.
- Parameters
-
[in] coefficients коэффициенты модели (a, b, c, d с ax+by+cz+d=0) [in] x,y,z проекция этой точки на плоскость используется для получения центра плоскости.
createPolygon() [1/2]
| inline |
#include <pcl/visualization/common/impl/shapes.hpp>
Создать 3d полилинию из набора точек на границе плоской области.
- Parameters
-
[in] planar_polygon набор точек, используемых для создания 3d полилинии
Определение в строке 82 файла shapes.hpp.
Ссылки на pcl::visualization::allocVtkUnstructuredGrid() и pcl::PlanarPolygon< PointT >::getContour().
createPolygon() [2/2]
| inline |
#include <pcl/visualization/common/impl/shapes.hpp>
Создать 3d полилинию из набора точек.
- Parameters
-
[in] cloud набор точек, используемых для создания 3d полилинии
Определение в строке 54 файла shapes.hpp.
Ссылки на pcl::visualization::allocVtkUnstructuredGrid(), pcl::PointCloud< PointT >::points и pcl::PointCloud< PointT >::size().
createSphere() [1/2]
| PCL_EXPORTS vtkSmartPointer<vtkDataSet> pcl::visualization::createSphere | ( | const Eigen::Vector4f & | center, |
| double | radius, | ||
| int |
res = 10 | ||
| ) |
#include <pcl/visualization/common/shapes.h>
Создать сферическую форму из точки и радиуса.
- Параметры
-
[вход] center центр сферы (в виде Eigen Vector4f, используются только первые 3 координаты) [вход] radius радиус сферы [вход] res (необязательно) разрешение, используемое для рендеринга модели
createSphere() [2/2]
| PCL_EXPORTS vtkSmartPointer<vtkDataSet> pcl::visualization::createSphere | ( | const pcl::ModelCoefficients & | coefficients, |
| int |
res = 10 | ||
| ) |
#include <pcl/visualization/common/shapes.h>
Создать сферическую форму по набору коэффициентов модели.
- Параметры
-
[вход] coefficients коэффициенты модели (центр сферы, радиус) [вход] res (необязательно) разрешение, используемое для рендеринга модели
// The following are given (or computed using sample consensus techniques -- see SampleConsensusModelSphere) // Eigen::Vector3f sphere_center; // float radius; pcl::ModelCoefficients sphere_coeff; sphere_coeff.values.resize (4); // We need 4 values sphere_coeff.values[0] = sphere_center.x (); sphere_coeff.values[1] = sphere_center.y (); sphere_coeff.values[2] = sphere_center.z (); sphere_coeff.values[3] = radius; vtkSmartPointer<vtkDataSet> data = pcl::visualization::createSphere (sphere_coeff, resolution); pcl::visualization::createSpherePCL_EXPORTS vtkSmartPointer< vtkDataSet > createSphere(const Eigen::Vector4f ¢er, double radius, int res=10)Create a sphere shape from a point and a radius. pcl::visualization::createSphere PCL_EXPORTS vtkSmartPointer< vtkDataSet > createSphere(const Eigen::Vector4f ¢er, double radius, int res=10) Create a sphere shape from a point and a radius.
getCorrespondingPointCloud()
| PCL_EXPORTS void pcl::visualization::getCorrespondingPointCloud | ( | vtkPolyData * | src, |
| const pcl::PointCloud< pcl::PointXYZ > & | tgt, | ||
| pcl::Indices & | indices | ||
| ) |
#include <pcl/visualization/common/io.h>
Получить список соответствующих индексов для набора vtk-точек из pcl::PointCloud.
- Параметры
-
src набор vtk-точек tgt целевой pcl::PointCloud, из которого нужно получить индексы indices результирующий список индексов
savePointData()
| PCL_EXPORTS bool pcl::visualization::savePointData | ( | vtkPolyData * | data, |
| const std::string & | out_file, | ||
| const CloudActorMapPtr & | actors | ||
| ) |
#include <pcl/visualization/common/io.h>
Сохраняет данные vtk-форматированного облака точек в набор файлов, в зависимости от того, загружались ли данные из ранее сохранённых PCD файлов.
PCD файлы сопоставляются с помощью списка имён актёров на экране.
- Параметры
-
data данные vtk out_file выходной файл (дополнительные индексы будут добавлены к нему) actors список актёров, присутствующих на экране
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/group__visualization.html