一: PCL 简介
The PointCloudLibrary (orPCL) is alarge scale, open project[1] for 3D point cloud processing. The PCL framework contains numerous state-of-the art algorithms including filtering, feature estimation, surface reconstruction, registration, model fitting and segmentation. These algorithms can be used, for example, to filter outliers from noisy data, stitch 3D point clouds together, segment relevant parts of a scene, extract keypoints and compute descriptors to recognize objects in the world based on their geometric appearance, and create surfaces from point clouds and visualize them -- to name a few.
PCL is released under the terms of theBSD license and is open source software. It is free for commercial and research use.
PCL is cross-platform, and has been successfully compiled and deployed on Linux, MacOS, Windows, and Android. To simplify development, PCL is split into a series of smaller code libraries, that can be compiled separately. This modularity is important for distributing PCL on platforms with reduced computational or size constraints (for more information about each module see thedocumentation page). Another way to think about PCL is as a graph of code libraries, similar to theBoost set of C++ libraries. Here's an example:
Point cloud library是一个开源、跨平台的点云处理库,pcl框架涵盖了当前最先进的点云处理相关算法,涉及滤波、特征估计、表面重建、注册、模型拟合、分割等。Pcl基于BSD协议,可免费用于商业和研究应用,适用于Linux、MacOS、Windows、Android平台。
官方网站为:www.pointclouds.org
这里发布了一些视频demo:http://www.youtube.com/user/pointclouds
相关教程、说明文件:http://www.pointclouds.org/documentation/。
二: PCL 编译——ubuntu 下
1. http://www.pointclouds.org/downloads/linux.html
Ubuntu
We currently support Ubuntu (Lucid, Maverick, Natty, Oneiric) systems via PPA. The installation instructions are:sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl2. 当然你可以直接下载http://www.pointclouds.org/downloads/sudo apt-get update
sudo apt-get install libpcl-all
但是我第一次编译的时候,老是出错,因为它需要新版本的 libboost 1.4.6, 可是我的电脑里是libboost 1.4.0, 所以我重新装了boost,然后就好啦:)
然后:
$ mkdir build$ cd build
$ cmake ..
$ make
3. Include and lib
include path: /usr/include/pcl-1.5library path: /usr/lib
libpcl_apps.solibpcl_common.solibpcl_features.so
libpcl_filters.so
libpcl_io.so
libpcl_io_ply.so
libpcl_kdtree.so
libpcl_keypoints.so
libpcl_octree.so
libpcl_range_image_border_extractor.so
libpcl_registration.so
libpcl_sample_consensus.so
libpcl_search.so
libpcl_segmentation.so
libpcl_surface.so
libpcl_tracking.so
三: 熟悉PCL--例子
http://www.pointclouds.org/documentation/tutorials/
熟悉PCL的各个模块!
包括:
openni_viewer(查看kinect采集的点云),
openni_passthrough(为kinect采集的点云做一个带通),
openni_3d_convex_hull(找凸包的),openni_ii_normal_estimation(估计法线),
openni_planar_segmentation(平面分割)等等,
还有一些pcd_viewer(查看pcd文件,即点云数据point cloud data)等不用kinect的。