W3cubDocs

/PointCloudLibrary

Detailed Description

Overview

The pcl_visualization library was built for the purpose of being able to quickly prototype and visualize the results of algorithms operating on 3D point cloud data. Similar to OpenCV's highgui routines for displaying 2D images and for drawing basic 2D shapes on screen, the library offers:

  • methods for rendering and setting visual properties (colors, point sizes, opacity, etc) for any n-D point cloud datasets in pcl::PointCloud<T> format;
  • methods for drawing basic 3D shapes on screen (e.g., cylinders, spheres,lines, polygons, etc) either from sets of points or from parametric equations;
  • a histogram visualization module (PCLHistogramVisualizer) for 2D plots;
  • a multitude of Geometry and Color handler for pcl::PointCloud<T> datasets;
  • a pcl::RangeImage visualization module.

The package makes use of the VTK library for 3D rendering for range image and 2D operations.

For implementing your own visualizers, take a look at the tests and examples accompanying the library.

Requirements

Classes

class pcl::visualization::CloudViewer
Simple point cloud visualization class. More...
class pcl::visualization::FloatImageUtils
Provide some gerneral functionalities regarding 2d float arrays, e.g., for visualization purposes More...
class pcl::visualization::PCLHistogramVisualizer
PCL histogram visualizer main class. More...
class pcl::visualization::ImageViewerInteractorStyle
An image viewer interactor style, tailored for ImageViewer. More...
class pcl::visualization::ImageViewer
ImageViewer is a class for 2D image visualization. More...
class pcl::visualization::PCLVisualizerInteractorStyle
PCLVisualizerInteractorStyle defines an unique, custom VTK based interactory style for PCL Visualizer applications. More...
struct pcl::visualization::Figure2D
Abstract class for storing figure information. More...
class pcl::visualization::PCLPainter2D
PCL Painter2D main class. More...
class pcl::visualization::PCLPlotter
PCL Plotter main class. More...
class pcl::visualization::PCLVisualizer
PCL Visualizer main class. More...
class pcl::visualization::PointCloudColorHandler< PointT >
Base Handler class for PointCloud colors. More...
class pcl::visualization::PointCloudColorHandlerRandom< PointT >
Handler for random PointCloud colors (i.e., R, G, B will be randomly chosen) More...
class pcl::visualization::PointCloudColorHandlerCustom< PointT >
Handler for predefined user colors. More...
class pcl::visualization::PointCloudColorHandlerRGBField< PointT >
RGB handler class for colors. More...
class pcl::visualization::PointCloudColorHandlerHSVField< PointT >
HSV handler class for colors. More...
class pcl::visualization::PointCloudColorHandlerGenericField< PointT >
Generic field handler class for colors. More...
class pcl::visualization::PointCloudColorHandlerRGBAField< PointT >
RGBA handler class for colors. More...
class pcl::visualization::PointCloudColorHandlerLabelField< PointT >
Label field handler class for colors. More...
class pcl::visualization::PointCloudColorHandler< pcl::PCLPointCloud2 >
Base Handler class for PointCloud colors. More...
class pcl::visualization::PointCloudColorHandlerRandom< pcl::PCLPointCloud2 >
Handler for random PointCloud colors (i.e., R, G, B will be randomly chosen) More...
class pcl::visualization::PointCloudColorHandlerCustom< pcl::PCLPointCloud2 >
Handler for predefined user colors. More...
class pcl::visualization::PointCloudColorHandlerRGBField< pcl::PCLPointCloud2 >
RGB handler class for colors. More...
class pcl::visualization::PointCloudColorHandlerHSVField< pcl::PCLPointCloud2 >
HSV handler class for colors. More...
class pcl::visualization::PointCloudColorHandlerGenericField< pcl::PCLPointCloud2 >
Generic field handler class for colors. More...
class pcl::visualization::PointCloudColorHandlerRGBAField< pcl::PCLPointCloud2 >
RGBA handler class for colors. More...
class pcl::visualization::PointCloudColorHandlerLabelField< pcl::PCLPointCloud2 >
Label field handler class for colors. More...
class pcl::visualization::PointCloudGeometryHandler< PointT >
Base handler class for PointCloud geometry. More...
class pcl::visualization::PointCloudGeometryHandlerXYZ< PointT >
XYZ handler class for PointCloud geometry. More...
class pcl::visualization::PointCloudGeometryHandlerSurfaceNormal< PointT >
Surface normal handler class for PointCloud geometry. More...
class pcl::visualization::PointCloudGeometryHandlerCustom< PointT >
Custom handler class for PointCloud geometry. More...
class pcl::visualization::PointCloudGeometryHandler< pcl::PCLPointCloud2 >
Base handler class for PointCloud geometry. More...
class pcl::visualization::PointCloudGeometryHandlerXYZ< pcl::PCLPointCloud2 >
XYZ handler class for PointCloud geometry. More...
class pcl::visualization::PointCloudGeometryHandlerSurfaceNormal< pcl::PCLPointCloud2 >
Surface normal handler class for PointCloud geometry. More...
class pcl::visualization::PointCloudGeometryHandlerCustom< pcl::PCLPointCloud2 >
Custom handler class for PointCloud geometry. More...
class pcl::visualization::RangeImageVisualizer
Range image visualizer class. More...
class pcl::RegistrationVisualizer< PointSource, PointTarget >
RegistrationVisualizer represents the base class for rendering the intermediate positions occupied by the source point cloud during it's registration to the target point cloud. More...
class pcl::visualization::PCLSimpleBufferVisualizer
PCL simple buffer visualizer main class. More...

Files

file shapes.h

Functions

PCL_EXPORTS void pcl::visualization::getCorrespondingPointCloud (vtkPolyData *src, const pcl::PointCloud< pcl::PointXYZ > &tgt, pcl::Indices &indices)
Obtain a list of corresponding indices, for a set of vtk points, from a pcl::PointCloud. More...
PCL_EXPORTS bool pcl::visualization::savePointData (vtkPolyData *data, const std::string &out_file, const CloudActorMapPtr &actors)
Saves the vtk-formatted Point Cloud data into a set of files, based on whether the data comes from previously loaded PCD files. More...
template<typename PointT >
vtkSmartPointer< vtkDataSet > pcl::visualization::createPolygon (const typename pcl::PointCloud< PointT >::ConstPtr &cloud)
Create a 3d poly line from a set of points. More...
template<typename PointT >
vtkSmartPointer< vtkDataSet > pcl::visualization::createPolygon (const pcl::PlanarPolygon< PointT > &planar_polygon)
Create a 3d poly line from a set of points on the boundary of a planar region. More...
PCL_EXPORTS vtkSmartPointer< vtkDataSet > pcl::visualization::createLine (const Eigen::Vector4f &pt1, const Eigen::Vector4f &pt2)
Create a line shape from two points. More...
PCL_EXPORTS vtkSmartPointer< vtkDataSet > pcl::visualization::createSphere (const Eigen::Vector4f &center, double radius, int res=10)
Create a sphere shape from a point and a radius. More...
PCL_EXPORTS vtkSmartPointer< vtkDataSet > pcl::visualization::createCylinder (const pcl::ModelCoefficients &coefficients, int numsides=30)
Create a cylinder shape from a set of model coefficients. More...
PCL_EXPORTS vtkSmartPointer< vtkDataSet > pcl::visualization::createSphere (const pcl::ModelCoefficients &coefficients, int res=10)
Create a sphere shape from a set of model coefficients. More...
PCL_EXPORTS vtkSmartPointer< vtkDataSet > pcl::visualization::createLine (const pcl::ModelCoefficients &coefficients)
Create a line shape from a set of model coefficients. More...
PCL_EXPORTS vtkSmartPointer< vtkDataSet > pcl::visualization::createPlane (const pcl::ModelCoefficients &coefficients)
Create a planar shape from a set of model coefficients. More...
PCL_EXPORTS vtkSmartPointer< vtkDataSet > pcl::visualization::createPlane (const pcl::ModelCoefficients &coefficients, double x, double y, double z)
Create a planar shape from a set of model coefficients. More...
PCL_EXPORTS vtkSmartPointer< vtkDataSet > pcl::visualization::create2DCircle (const pcl::ModelCoefficients &coefficients, double z=0.0)
Create a 2d circle shape from a set of model coefficients. More...
PCL_EXPORTS vtkSmartPointer< vtkDataSet > pcl::visualization::createCone (const pcl::ModelCoefficients &coefficients)
Create a cone shape from a set of model coefficients. More...
PCL_EXPORTS vtkSmartPointer< vtkDataSet > pcl::visualization::createCube (const pcl::ModelCoefficients &coefficients)
Create a cube shape from a set of model coefficients. More...
PCL_EXPORTS vtkSmartPointer< vtkDataSet > pcl::visualization::createCube (const Eigen::Vector3f &translation, const Eigen::Quaternionf &rotation, double width, double height, double depth)
Create a cube shape from a set of model coefficients. More...
PCL_EXPORTS vtkSmartPointer< vtkDataSet > pcl::visualization::createEllipsoid (const Eigen::Isometry3d &transform, double radius_x, double radius_y, double radius_z)
Create an ellipsoid shape from the given parameters. More...

Function Documentation

create2DCircle()

PCL_EXPORTS vtkSmartPointer<vtkDataSet> pcl::visualization::create2DCircle ( const pcl::ModelCoefficients & coefficients,
double z = 0.0
)

#include <pcl/visualization/common/shapes.h>

Create a 2d circle shape from a set of model coefficients.

Parameters
[in] coefficients the model coefficients (x, y, radius)
[in] z (optional) specify a z value (default: 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;

createCone()

PCL_EXPORTS vtkSmartPointer<vtkDataSet> pcl::visualization::createCone ( const pcl::ModelCoefficients & coefficients )

#include <pcl/visualization/common/shapes.h>

Create a cone shape from a set of model coefficients.

Parameters
[in] coefficients the cone 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.
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

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>

Create a cube shape from a set of model coefficients.

Parameters
[in] translation a translation to apply to the cube from 0,0,0
[in] rotation a quaternion-based rotation to apply to the cube
[in] width the cube's width
[in] height the cube's height
[in] depth the cube's depth

createCube() [2/2]

PCL_EXPORTS vtkSmartPointer<vtkDataSet> pcl::visualization::createCube ( const pcl::ModelCoefficients & coefficients )

#include <pcl/visualization/common/shapes.h>

Create a cube shape from a set of model coefficients.

Parameters
[in] coefficients the cube 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>

Create a cylinder shape from a set of model coefficients.

Parameters
[in] coefficients the model coefficients (point_on_axis, axis_direction, radius)
[in] numsides (optional) the number of sides used for rendering the cylinder
// 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;

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>

Create an ellipsoid shape from the given parameters.

Parameters
[in] transform a transformation to apply to the ellipsoid from 0,0,0
[in] radius_x the ellipsoid's radius along its local x-axis
[in] radius_y the ellipsoid's radius along its local y-axis
[in] radius_z the ellipsoid's radius along its local z-axis

createLine() [1/2]

PCL_EXPORTS vtkSmartPointer<vtkDataSet> pcl::visualization::createLine ( const Eigen::Vector4f & pt1,
const Eigen::Vector4f & pt2
)

#include <pcl/visualization/common/shapes.h>

Create a line shape from two points.

Parameters
[in] pt1 the first point on the line
[in] pt2 the end point on the line

Referenced by pcl::visualization::PCLVisualizer::addLine().

createLine() [2/2]

PCL_EXPORTS vtkSmartPointer<vtkDataSet> pcl::visualization::createLine ( const pcl::ModelCoefficients & coefficients )

#include <pcl/visualization/common/shapes.h>

Create a line shape from a set of model coefficients.

Parameters
[in] coefficients the model 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;
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 ();

createPlane() [1/2]

PCL_EXPORTS vtkSmartPointer<vtkDataSet> pcl::visualization::createPlane ( const pcl::ModelCoefficients & coefficients )

#include <pcl/visualization/common/shapes.h>

Create a planar shape from a set of model coefficients.

Parameters
[in] coefficients the model coefficients (a, b, c, d with ax+by+cz+d=0)
// The following are given (or computed using sample consensus techniques -- see SampleConsensusModelPlane)
// Eigen::Vector4f plane_parameters;
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 ();

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>

Create a planar shape from a set of model coefficients.

Parameters
[in] coefficients the model coefficients (a, b, c, d with ax+by+cz+d=0)
[in] x,y,z projection of this point on the plane is used to get the center of the plane.

createPolygon() [1/2]

template<typename PointT >
vtkSmartPointer< vtkDataSet > pcl::visualization::createPolygon ( const pcl::PlanarPolygon< PointT > & planar_polygon )
inline

#include <pcl/visualization/common/impl/shapes.hpp>

Create a 3d poly line from a set of points on the boundary of a planar region.

Parameters
[in] planar_polygon the set of points used to create the 3d polyline

Definition at line 82 of file shapes.hpp.

References pcl::visualization::allocVtkUnstructuredGrid(), and pcl::PlanarPolygon< PointT >::getContour().

createPolygon() [2/2]

template<typename PointT >
vtkSmartPointer< vtkDataSet > pcl::visualization::createPolygon ( const typename pcl::PointCloud< PointT >::ConstPtr & cloud )
inline

#include <pcl/visualization/common/impl/shapes.hpp>

Create a 3d poly line from a set of points.

Parameters
[in] cloud the set of points used to create the 3d polyline

Definition at line 54 of file shapes.hpp.

References pcl::visualization::allocVtkUnstructuredGrid(), pcl::PointCloud< PointT >::points, and 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>

Create a sphere shape from a point and a radius.

Parameters
[in] center the center of the sphere (as an Eigen Vector4f, with only the first 3 coordinates used)
[in] radius the radius of the sphere
[in] res (optional) the resolution used for rendering the model

createSphere() [2/2]

PCL_EXPORTS vtkSmartPointer<vtkDataSet> pcl::visualization::createSphere ( const pcl::ModelCoefficients & coefficients,
int res = 10
)

#include <pcl/visualization/common/shapes.h>

Create a sphere shape from a set of model coefficients.

Parameters
[in] coefficients the model coefficients (sphere center, radius)
[in] res (optional) the resolution used for rendering the model
// 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;

getCorrespondingPointCloud()

PCL_EXPORTS void pcl::visualization::getCorrespondingPointCloud ( vtkPolyData * src,
const pcl::PointCloud< pcl::PointXYZ > & tgt,
pcl::Indices & indices
)

#include <pcl/visualization/common/io.h>

Obtain a list of corresponding indices, for a set of vtk points, from a pcl::PointCloud.

Parameters
src the set of vtk points
tgt the target pcl::PointCloud that we need to obtain indices from
indices the resultant list of indices

savePointData()

PCL_EXPORTS bool pcl::visualization::savePointData ( vtkPolyData * data,
const std::string & out_file,
const CloudActorMapPtr & actors
)

#include <pcl/visualization/common/io.h>

Saves the vtk-formatted Point Cloud data into a set of files, based on whether the data comes from previously loaded PCD files.

The PCD files are matched using the a list of names for the actors on screen.

Parameters
data the vtk data
out_file the output file (extra indices will be appended to it)
actors the list of actors present on screen

© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/group__visualization.html