@jspricke jspricke released this Jun 14, 2016 · 124 commits to master since this release

Update changes for 1.8.0



@taketwo taketwo released this Sep 10, 2014 · 951 commits to master since this release

We are proud to announce the new PCL version 1.7.2. This release incorporates more than 300 pull requests merged during the last eleven months. Together with dozens of bug fixes it brings support for VTK6 and OpenNI 2.

The most notable changes are:

  • Added support for VTK6
  • Removed Google Test from the source tree and added it as a system dependency
  • Added support for QHull 2012 on non-Debian platforms


  • Added BearingAngleImage class
  • Added pcl::CPPFSignature point type
  • Added getRGBAVector4i(), getBGRVector3cMap(), and getBGRAVector4cMap()
    to all point types containing RGB/RGBA fields
  • Added a family of "has field" functions to check presence of a particular
    field in a point type both at compile- and run-time
  • Added a function to copy data between points of different types
  • Added test macros for equality/nearness checks
  • Added descriptorSize() to all point types with descriptors
  • Added possibility to copy a cloud inside another one while interpolating
  • Added a function to determine the point of intersection of three non-parallel
  • Fixed a bug in HSV to RGB color conversion
  • Added a new CentroidPoint class
  • Templated intersection computation functions on scalar type
  • Templated functions in 'eigen.h' on scalar type
  • Added functions to transform points, vectors, lines, etc.


  • Added a simple implementation of CPPF using normalised HSV values in the
    feature vector
  • Added MomentOfInertiaEstimation and ROPSEstimation features
  • Fixed a problem in OURCVFHEstimation::computeRFAndShapeDistribution()
  • Fixed undefined behavior in OURCVFHEstimation::computeFeature()
  • Fixed memory corruption error in OUR-CVFH


  • Added a function to set the minimum number of points required for a voxel to
    be used in VoxelGrid
  • Added GridMinimum filter
  • Added a morphological filter that operates on Z dimension
  • Added progressive morphological filter to extract ground returns
  • Added a filter to remove locally maximal points in the z dimension
  • Added an approximate version of the progressive morphological filter
  • Added ModelOutlierRemoval class that filters points in a cloud based on the
    distance between model and point


  • Added experimental version of an OpenNI 2.x grabber
  • Added support for IFS file format
  • Added possibility to load PCLPointCloud2 from OBJ files
  • Fixed loading and saving of PLY files
  • Fixed race conditions in PCDGrabber
  • Fixed multi openni grabber buffer corruption
  • Fixed incompatibility with Boost 1.56 in LZFImageWriter
  • Fixed a bug in PLYReader which lead to deformation of point clouds when
    displayed in CloudViewer or PCLVisualizer


  • Fixed double memory free bug in KdTreeFLANN


  • Added a method Keypoint::getKeypointsIndices ()
  • Added keypoints based on Trajkovic and Hedley operator (2D and 3D versions)


  • Fixed a bug in OctreePointCloudAdjacency::computeNeighbors()
  • Accelerated OctreePointCloudAdjacency building by disabling dynamic key
  • Fixed a bug with infinite points in OctreePointCloudAdjacency


  • Added a possibility to define a transformation matrix for people tracker


  • Allow PCL to be built against a system-wide installed metslib
  • Fixed a bug in ObjRecRANSAC::addModel()
  • Added LINEMOD::loadTemplates() (useful for object recognition systems that
    store templates for different objects in different files)


  • Fixed SampleConsensusInitialAlignment::hasConverged()
  • Added JointIterativeClosestPoint
  • Made correspondence rejectors to actually work with ICP
  • Added GeneralizedIterativeClosestPoint6D that integrates Lab color space
    information into the GICP algorithm
  • Fixed bugs and optimized SampleConsensusPrerejective
  • Fixed a bug in TransformationEstimationSVDScale


  • Unified SampleConsensusModelNormalParallelPlane with
    SampleConsensusModelNormalPlane to avoid code duplication


  • search::KdTree can now be used with different KdTree implementations
  • Added a new interface to FLANN's multiple randomized trees for
    high-dimensional (feature) searches
  • Fixed a bug in the Ptr typdef in KdTree


  • Added GrabCut segmentation and a show-case application for 2D
  • Updated RegionGrowingRGB::assembleRegion() to speed up the algorithm
  • Fixed a bug with missing point infinity test in RegionGrowing
  • Fixed alignment issue in SupervoxelClustering
  • Added a curvature parameter to Region3D class
  • Fixed a minor bug in OrganizedConnectedComponentSegmentation


  • Fixed a bug in EarClipping where computation failed if all vertices have
    the same x or y component
  • Added support for unequal focal lengths along different axes in texture
  • Speeded up bilateral upsampling
  • Reduced space usage in MovingLeastSquares


  • Fixed Hue distance calculation in tracking HSVColorCoherence
  • Added pyramidal KLT tracking


  • Added a new color handler PointCloudColorHandlerRGBAField that takes into
    account alpha channel
  • Fixed PCLVisualizer crashes on OS X
  • Added possibility to display texture on polygon meshes
  • Added ability to add and remove several coordinate systems
  • Added ImageViewer::markPoints()
  • Added setWindowPosition() and setWindowName() to PCLPlotter
  • Changed camera parameters display to be more user-friendly
  • Added PCLVisualizer::updateCoordinateSystemPose()
  • Fixed display of non-triangular meshes in PCLVisualizer
  • Added a capability to save and restore camera view in PCLVisualizer
  • Added PCLVisualizer::getShapeActorMap() function
  • Fixed undefined behavior when drawing axis in PCLVisualizer
  • Fixed HSV to RGB conversion in PointCloudColorHandlerHSVField
  • Fixed non-working key presses in visualization GUIs on Mac OS X systems
  • Fixed a bug in PCLVisualizer::addCube()
  • Fixed a bug in cone visualization and added possibility to set cone length

PCL Tools:

  • Added a simple tool to compute Hausdorff distance between two point clouds
  • Updated pcl_viewer to use RGB color handler as default
  • Added a morphological tool pcl_morph to apply dilate/erode/open/close
    operations on the Z dimension
  • Added a tool pcl_generate to generate random clouds
  • Added a tool pcl_grid_min to find grid minimums
  • Added a tool pcl_local_max to filter out local maxima
  • Added optional depth image input to pcl_png2pcd converter
  • Fixed memory size calculation in pcl_openni_pcd_recorder
  • Added device ID parameter to pcl_openni_pcd_recorder
  • Added automatic camera reset on startup in pcl_viewer
  • Added a capability to save and restore camera view in pcl_viewer
  • Updated pcl_pcd2png tool to be able to paint pixels corresponding to
    infinite points with black. Added Glasbey lookup table to paint labels with
    a fixed set of highly distinctive colors.
  • Added pcl_obj2pcd tool

PCL Apps:

  • Fixed disappearing cloud from selection in Cloud Composer



@jspricke jspricke released this Oct 7, 2013 · 1977 commits to master since this release

  • New pcl::io::savePNGFile() functions and pcd2png tool (deprecates organized_pcd_to_png).
  • Support for Intel Perceptual Computing SDK cameras.
  • New Dual quaternion transformation estimation algorithm.
  • Bugfixes.



@jspricke jspricke released this Jul 23, 2013 · 2124 commits to master since this release

We are proud to announce the new PCL version 1.7.

After one year of development, there have been a lot of changes:

  • We welcome three new modules: outofcore, people, recognition.
  • PCL moved to git and onto Github.
  • We separated the PCL and ROS data types. Please read https://github.com/PointCloudLibrary/pcl/wiki/Remove-ROS on how to convert your code.
  • We had a flaw in the pcd viewpoint generation. If your point clouds seem to be flipped, please read https://github.com/PointCloudLibrary/pcl/wiki/pcd-viewpoint.
  • the geometry lib has been converted into header only, resulting in a ABI change.
  • If you are using your own point type, you need to define PCL_NO_PRECOMPILE before including any PCL headers.

The most notable overall changes are:


  • Added pcl::Intensity and pcl::Intensity8u point types
  • Added pcl::RangeImageSpherical sub-class that is more suitable than pcl::RangeImage for some kinds of 360° range images (as discussed in [PCL-users] Range Image Projection)
  • Added DefaultPointRepresentationpcl::Narf36 to allow pcl::Narf36 to be used with pcl::search (#915)

PCL Apps:

  • Added cloud_composer app
  • Added PCLModeler, with a tree view scene explorer and multiple render windows support
  • Added client app for the point cloud streaming server
  • Added new server app for point cloud streaming to mobile devices (pcl_openni_mobile_server)
  • Added a new demo for the connected component segmentation. Includes a QT gui that allows various features to be toggled on/off.
  • Added SHOT estimator wrapper using OMP
  • Added openni_organized_multi_plane_segmentation to demonstrate the OrganizedMultiPlaneSegmentation class.


  • Added a new tutorial for "libpcl_recognition" for Correspondence Grouping by Tommaso Cavallari (#666)
  • Added support for .LMT file loading (which are TARed files for PCD masks and SQMMT linemod templates)
  • Changes in the computation of the modality to improve performance
  • Fixed a compilation error on windows; for some reason 'NULL' needs to be explicitly casted to the pointer type
  • Added a model library class used for maintaining the object models to be recognized.
  • Changed the interface to make it less confusing to use.
  • Added a couple useful overloads for "Houg###Grouping" and "GeometricConsistencyGrouping"
  • Added CRHAlignment class.
  • Added Papazov HV method.
  • Fixed a bug in Poisson surface reconstruction that was causing the unit test to fail
  • Added option for automatic selection of number of features in extractFeature
  • Added a new greedy hypotheses verification method.
  • Added semi scale invariant linemod template detection
  • Fixed RF search radius in "Houg###Grouping"
  • Fixed some bugs in detection refinement along viewing direction
  • Fixed bug in LineRGBD::computeTransformedTemplatePoints (template point cloud's width and height fields were not set)
  • Converted uses of PointXYZRGB to PointXYZRGBA; converted std::cerr messages to PCL_DEBUG; minor reformatting to keep lines under 120 characters
  • Fixed some bugs related to bounding box computation and computation of transformed template point clouds
  • Added functionality to specify an object ID when loading templates in LineRGBD;
  • Added "GeometricConsistencyGrouping" clustering class
  • Added high level interface for RGBD version of linemod (not all parts are implemented yet)
  • Added SSE optimizations to improve detection speed
  • Added Ransac Correspondence Rejection into Houg###Grouping
  • Changed method for selecting features in color gradient modality
  • Added "CorrespondenceGrouping" abstract base class for correspondence grouping in pcl_recognitio
  • Added cosine approximation in score computation
  • Added structure for hypotheses verification methods. Base abstract class


  • Added implementation of the Intrinsic Shape Signature keypoint detector
  • fixed crash caused by setNormals() in HarrisKeypoint3D (related to #745)


  • Added support for PointCloud + gen LOD
  • Added PointCloud2 support for outofcore queries via new "queryBBIncludes" method
  • Added "copyPointCloud" support for PointCloud2 without indices
  • Added feature: outofcore binary compressed pcd files to store point data on disk
  • Bug fix: outofcore write buffer constant limitation fixed so outofcore_process will work with large 20M+ point TRCS data sets
  • Constants for write buffer changed to 2e12 to support insertion of very large point clouds until new serialization is implemented
  • Added getVoxelSideLength to octree_base for displaying of nodes in visualizer


  • FlannSearch: fixed wrong typedef (::Ptr would break if FlannDistance!=flann::L2) and compiler error
  • Added new option in FlannSearch: FLANN KMeans Tree can now be uses as the search algorithm


  • Added specific methods to handle monochrome images represented by a PointCloud or a PointCloud
  • Add area selection option to PCLVisualizer so user can get a whole area indexes
  • Fix the ImageViewer shapes overlay using vtkContextItem so they now appear with transparent background


  • Added a PNG to PCD converter


  • Added support for the Velodyne High Definition Laser (HDL)
  • Add support for foo/bar vertex property in PLY file reading