Подробное описание
Обзор
Библиотека pcl_visualization создана для быстрого прототипирования и визуализации результатов алгоритмов, работающих с данными 3D-облаков точек. Подобно процедурам highgui в OpenCV для отображения 2D-изображений и рисования на экране базовых 2D-фигур, библиотека предоставляет:
- методы визуализации и настройки визуальных свойств (цветов, размеров точек, непрозрачности и т. д.) для любых наборов данных n-мерных облаков точек в формате pcl::PointCloud<T>;
- методы рисования на экране базовых 3D-фигур (например, цилиндров, сфер, линий, многоугольников и т. д.) как по наборам точек, так и по параметрическим уравнениям;
- модуль визуализации гистограмм (PCLHistogramVisualizer) для 2D-графиков;
- множество обработчиков геометрии и цвета для наборов данных pcl::PointCloud<T>;
- модуль визуализации pcl::RangeImage.
Пакет использует библиотеку VTK для 3D-визуализации изображений дальности и 2D-операций.
Чтобы реализовать собственные средства визуализации, ознакомьтесь с тестами и примерами, прилагаемыми к библиотеке.
Требования
- 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, radius) [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 коэффициенты конуса (cone_apex, axis_direction, angle)
// 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, width, height, depth)
createCylinder()
| PCL_EXPORTS vtkSmartPointer<vtkDataSet> pcl::visualization::createCylinder | ( | const pcl::ModelCoefficients & | coefficients, |
| int |
numsides = 30 | ||
| ) |
#include <pcl/visualization/common/shapes.h>
Создать цилиндр по набору коэффициентов модели.
- Параметры
-
[in] coefficients коэффициенты модели (point_on_axis, axis_direction, radius) [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>
Создать эллипсоид по заданным параметрам.
- Параметры
-
[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>
Создать линию по двум точкам.
- Параметры
-
[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>
Создать линию по набору коэффициентов модели.
- Параметры
-
[in] coefficients коэффициенты модели (point_on_line, line_direction)
// 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>
Создать плоскую фигуру по набору коэффициентов модели.
- Параметры
-
[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>
Создать плоскую фигуру по набору коэффициентов модели.
- Параметры
-
[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-ломаную по набору точек на границе плоской области.
- Параметры
-
[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-полилинию из набора точек.
- Параметры
-
[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>
Создаёт сферу по точке и радиусу.
- Параметры
-
[in] center центр сферы (в виде Eigen Vector4f; используются только первые 3 координаты) [in] radius радиус сферы [in] res (необязательно) разрешение, используемое для визуализации модели
createSphere() [2/2]
| PCL_EXPORTS vtkSmartPointer<vtkDataSet> pcl::visualization::createSphere | ( | const pcl::ModelCoefficients & | coefficients, |
| int |
res = 10 | ||
| ) |
#include <pcl/visualization/common/shapes.h>
Создаёт сферу по набору коэффициентов модели.
- Параметры
-
[in] coefficients коэффициенты модели (центр сферы, радиус) [in] 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