2000 lines
81 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Introduction &mdash; Point Cloud Library 1.12.0 documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/language_data.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="#" class="icon icon-home"> Point Cloud Library
</a>
<div class="version">
1.12.0
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<!-- Local TOC -->
<div class="local-toc"><ul>
<li><a class="reference internal" href="#">Introduction</a></li>
<li><a class="reference internal" href="#basic-usage">Basic Usage</a></li>
<li><a class="reference internal" href="#advanced-usage">Advanced Usage</a></li>
<li><a class="reference internal" href="#features">Features</a></li>
<li><a class="reference internal" href="#filtering">Filtering</a></li>
<li><a class="reference internal" href="#i-o">I/O</a></li>
<li><a class="reference internal" href="#keypoints">Keypoints</a></li>
<li><a class="reference internal" href="#kdtree">KdTree</a></li>
<li><a class="reference internal" href="#octree">Octree</a></li>
<li><a class="reference internal" href="#range-images">Range Images</a></li>
<li><a class="reference internal" href="#recognition">Recognition</a></li>
<li><a class="reference internal" href="#registration">Registration</a></li>
<li><a class="reference internal" href="#sample-consensus">Sample Consensus</a></li>
<li><a class="reference internal" href="#segmentation">Segmentation</a></li>
<li><a class="reference internal" href="#surface">Surface</a></li>
<li><a class="reference internal" href="#visualization">Visualization</a></li>
<li><a class="reference internal" href="#applications">Applications</a></li>
<li><a class="reference internal" href="#gpu">GPU</a></li>
</ul>
</div>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="#">Point Cloud Library</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="#">Docs</a> &raquo;</li>
<li>Introduction</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="toctree-wrapper compound">
</div>
<div class="section" id="introduction">
<h1>Introduction</h1>
<p>The following links describe a set of basic PCL tutorials. Please note that
their source codes may already be provided as part of the PCL regular releases,
so check there before you start copy &amp; pasting the code. The list of tutorials
below is automatically generated from reST files located in our git repository.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">Before you start reading, please make sure that you go through the higher-level overview documentation at <a class="reference external" href="http://www.pointclouds.org/documentation/">http://www.pointclouds.org/documentation/</a>, under <strong>Getting Started</strong>. Thank you.</p>
</div>
<p>As always, we would be happy to hear your comments and receive your
contributions on any tutorial.</p>
</div>
<div class="section" id="basic-usage">
<span id="id1"></span><h1>Basic Usage</h1>
<blockquote>
<div><ul>
<li><p class="first"><a class="reference internal" href="walkthrough.html#walkthrough"><span class="std std-ref">PCL Walkthrough</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="6%" />
<col width="94%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/pcl_logo.png"><img alt="mi_0" src="_images/pcl_logo.png" style="height: 75px;" /></a></td>
<td><p class="first">Title: <strong>PCL Functionality Walkthrough</strong></p>
<p>Author: <em>Razvan G. Mihalyi</em></p>
<p>Compatibility: &gt; PCL 1.6</p>
<p class="last">Takes the reader through all of the PCL modules and offers basic explanations on their functionalities.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="basic_structures.html#basic-structures"><span class="std std-ref">Getting Started / Basic Structures</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="6%" />
<col width="94%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/pcl_logo.png"><img alt="mi_1" src="_images/pcl_logo.png" style="height: 75px;" /></a></td>
<td><p class="first">Title: <strong>Getting Started / Basic Structures</strong></p>
<p>Author: <em>Radu B. Rusu</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">Presents the basic data structures in PCL and discusses their usage with a simple code example.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="using_pcl_pcl_config.html#using-pcl-pcl-config"><span class="std std-ref">Using PCL in your own project</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="7%" />
<col width="93%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/pcl_logo.png"><img alt="mi_2" src="_images/pcl_logo.png" style="height: 75px;" /></a></td>
<td><p class="first">Title: <strong>Using PCL in your own project</strong></p>
<p>Author: <em>Nizar Sallem</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">In this tutorial, we will learn how to link your own project to PCL using cmake.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="compiling_pcl_posix.html#compiling-pcl-posix"><span class="std std-ref">Compiling PCL from source on POSIX compliant systems</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="7%" />
<col width="93%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/pcl_logo.png"><img alt="mi_11" src="_images/pcl_logo.png" style="height: 75px;" /></a></td>
<td><p class="first">Title: <strong>Compiling PCL from source on POSIX compliant systems</strong></p>
<p>Author: <em>Victor Lamoine</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">In this tutorial, we will explain how to compile PCL from sources on POSIX/Unix systems.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="building_pcl.html#building-pcl"><span class="std std-ref">Customizing the PCL build process</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="5%" />
<col width="95%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/pcl_ccmake.png"><img alt="mi_3" src="_images/pcl_ccmake.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Explaining PCLs cmake options</strong></p>
<p>Author: <em>Nizar Sallem</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">In this tutorial, we will explain the basic PCL cmake options, and ways to tweak them to fit your project.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="compiling_pcl_dependencies_windows.html#compiling-pcl-dependencies-windows"><span class="std std-ref">Building PCLs dependencies from source on Windows</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="5%" />
<col width="95%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/windows_logo.png"><img alt="mi_4" src="_images/windows_logo.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Compiling PCLs dependencies from source on Windows</strong></p>
<p>Authors: <em>Alessio Placitelli</em> and <em>Mourad Boufarguine</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">In this tutorial, we will explain how to compile PCLs 3rd party dependencies from source on Microsoft Windows.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="compiling_pcl_windows.html#compiling-pcl-windows"><span class="std std-ref">Compiling PCL from source on Windows</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="8%" />
<col width="93%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/windows_logo.png"><img alt="mi_5" src="_images/windows_logo.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Compiling PCL on Windows</strong></p>
<p>Author: <em>Mourad Boufarguine</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">In this tutorial, we will explain how to compile PCL on Microsoft Windows.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="compiling_pcl_macosx.html#compiling-pcl-macosx"><span class="std std-ref">Compiling PCL and its dependencies from MacPorts and source on Mac OS X</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="5%" />
<col width="95%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/macosx_logo.png"><img alt="mi_6" src="_images/macosx_logo.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Compiling PCL and its dependencies from MacPorts and source on Mac OS X</strong></p>
<p>Author: <em>Justin Rosen</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">This tutorial explains how to build the Point Cloud Library <strong>from MacPorts and source</strong> on Mac OS X platforms.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="installing_homebrew.html#installing-homebrew"><span class="std std-ref">Installing on Mac OS X using Homebrew</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="4%" />
<col width="96%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/macosx_logo.png"><img alt="mi_7" src="_images/macosx_logo.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Installing on Mac OS X using Homebrew</strong></p>
<p>Author: <em>Geoffrey Biggs</em></p>
<p>Compatibility: &gt; PCL 1.2</p>
<p class="last">This tutorial explains how to install the Point Cloud Library on Mac OS X using Homebrew. Both direct installation and compiling PCL from source are explained.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="using_pcl_with_eclipse.html#using-pcl-with-eclipse"><span class="std std-ref">Using PCL with Eclipse</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="8%" />
<col width="92%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/eclipse.png"><img alt="mi_8" src="_images/eclipse.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Using Eclipse as your PCL editor</strong></p>
<p>Author: <em>Koen Buys</em></p>
<p>Compatibility: PCL git master</p>
<p class="last">This tutorial shows you how to get your PCL as a project in Eclipse.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="generate_local_doc.html#generate-local-doc"><span class="std std-ref">Generate a local documentation for PCL</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="8%" />
<col width="92%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/pcl_logo.png"><img alt="mi_11" src="_images/pcl_logo.png" style="height: 75px;" /></a></td>
<td><p class="first">Title: <strong>Generate a local documentation for PCL</strong></p>
<p>Author: <em>Victor Lamoine</em></p>
<p>Compatibility: PCL &gt; 1.0</p>
<p class="last">This tutorial shows you how to generate and use a local documentation for PCL.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="matrix_transform.html#matrix-transform"><span class="std std-ref">Using a matrix to transform a point cloud</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="9%" />
<col width="91%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/cube.png"><img alt="mi_10" src="_images/cube.png" style="height: 120px;" /></a></td>
<td><p class="first">Title: <strong>Using matrixes to transform a point cloud</strong></p>
<p>Author: <em>Victor Lamoine</em></p>
<p>Compatibility: &gt; PCL 1.5</p>
<p class="last">This tutorial shows you how to transform a point cloud using a matrix.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
</ul>
</div></blockquote>
</div>
<div class="section" id="advanced-usage">
<span id="id2"></span><h1>Advanced Usage</h1>
<blockquote>
<div><ul>
<li><p class="first"><a class="reference internal" href="adding_custom_ptype.html#adding-custom-ptype"><span class="std std-ref">Adding your own custom PointT type</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="4%" />
<col width="96%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/pcl_logo.png"><img alt="au_1" src="_images/pcl_logo.png" style="height: 75px;" /></a></td>
<td><p class="first">Title: <strong>Adding your own custom PointT point type</strong></p>
<p>Author: <em>Radu B. Rusu</em></p>
<p>Compatibility: &gt; PCL 0.9, &lt; PCL 2.0</p>
<p class="last">This document explains what templated point types are in PCL, why do they exist, and how to create and use your own <cite>PointT</cite> point type.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="writing_new_classes.html#writing-new-classes"><span class="std std-ref">Writing a new PCL class</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="4%" />
<col width="96%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/pcl_logo.png"><img alt="au_2" src="_images/pcl_logo.png" style="height: 75px;" /></a></td>
<td><p class="first">Title: <strong>Writing a new PCL class</strong></p>
<p>Author: <em>Radu B. Rusu, Luca Penasa</em></p>
<p>Compatibility: &gt; PCL 0.9, &lt; PCL 2.0</p>
<p class="last">This short guide is to serve as both a HowTo and a FAQ for writing new PCL classes, either from scratch, or by adapting old code.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
</ul>
</div></blockquote>
</div>
<div class="section" id="features">
<span id="features-tutorial"></span><h1>Features</h1>
<blockquote>
<div><ul>
<li><p class="first"><a class="reference internal" href="how_features_work.html#how-3d-features-work"><span class="std std-ref">How 3D Features work in PCL</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="6%" />
<col width="94%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/good_features_small.jpg"><img alt="fe_1" src="_images/good_features_small.jpg" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>How 3D features work</strong></p>
<p>Author: <em>Radu B. Rusu</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">This document presents a basic introduction to the 3D feature estimation methodologies in PCL.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="normal_estimation.html#normal-estimation"><span class="std std-ref">Estimating Surface Normals in a PointCloud</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="5%" />
<col width="95%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/normal_estimation.png"><img alt="fe_2" src="_images/normal_estimation.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Estimating Surface Normals in a PointCloud</strong></p>
<p>Author: <em>Radu B. Rusu</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">This tutorial discusses the theoretical and implementation details of the surface normal estimation module in PCL.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="normal_estimation_using_integral_images.html#normal-estimation-using-integral-images"><span class="std std-ref">Normal Estimation Using Integral Images</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="5%" />
<col width="95%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/normal_estimation_ii.png"><img alt="fe_3" src="_images/normal_estimation_ii.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Normal Estimation Using Integral Images</strong></p>
<p>Author: <em>Stefan Holzer</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">In this tutorial we will learn how to compute normals for an organized point cloud using integral images.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="pfh_estimation.html#pfh-estimation"><span class="std std-ref">Point Feature Histograms (PFH) descriptors</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="4%" />
<col width="96%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/pfh_estimation.png"><img alt="fe_4" src="_images/pfh_estimation.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Point Feature Histograms (PFH) descriptors</strong></p>
<p>Author: <em>Radu B. Rusu</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">This tutorial introduces a family of 3D feature descriptors called PFH (Point Feature Histograms) and discusses their implementation details from PCLs perspective.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="fpfh_estimation.html#fpfh-estimation"><span class="std std-ref">Fast Point Feature Histograms (FPFH) descriptors</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="4%" />
<col width="96%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/fpfh_estimation.jpg"><img alt="fe_5" src="_images/fpfh_estimation.jpg" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Fast Point Feature Histograms (FPFH) descriptors</strong></p>
<p>Author: <em>Radu B. Rusu</em></p>
<p>Compatibility: &gt; PCL 1.3</p>
<p class="last">This tutorial introduces the FPFH (Fast Point Feature Histograms) 3D descriptor and discusses their implementation details from PCLs perspective.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="vfh_estimation.html#vfh-estimation"><span class="std std-ref">Estimating VFH signatures for a set of points</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="3%" />
<col width="97%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/vfh_estimation.png"><img alt="fe_6" src="_images/vfh_estimation.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Estimating VFH signatures for a set of points</strong></p>
<p>Author: <em>Radu B. Rusu</em></p>
<p>Compatibility: &gt; PCL 0.8</p>
<p class="last">This document describes the Viewpoint Feature Histogram (VFH) descriptor, a novel representation for point clusters for the problem of Cluster (e.g., Object) Recognition and 6DOF Pose Estimation.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="narf_feature_extraction.html#narf-feature-extraction"><span class="std std-ref">How to extract NARF Features from a range image</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="7%" />
<col width="93%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/narf_keypoint_extraction.png"><img alt="fe_7" src="_images/narf_keypoint_extraction.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>How to extract NARF features from a range image</strong></p>
<p>Author: <em>Bastian Steder</em></p>
<p>Compatibility: &gt; 1.3</p>
<p class="last">In this tutorial, we will learn how to extract NARF features from a range image.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="moment_of_inertia.html#moment-of-inertia"><span class="std std-ref">Moment of inertia and eccentricity based descriptors</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="4%" />
<col width="96%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/moment_of_inertia.png"><img alt="fe_8" src="_images/moment_of_inertia.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Moment of inertia and eccentricity based descriptors</strong></p>
<p>Author: <em>Sergey Ushakov</em></p>
<p>Compatibility: &gt; PCL 1.7</p>
<p class="last">In this tutorial we will learn how to compute moment of inertia and eccentricity of the cloud. In addition to this we will learn how to extract AABB and OBB.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="rops_feature.html#rops-feature"><span class="std std-ref">RoPs (Rotational Projection Statistics) feature</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="9%" />
<col width="91%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/rops_feature.png"><img alt="fe_9" src="_images/rops_feature.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>RoPs (Rotational Projection Statistics) feature</strong></p>
<p>Author: <em>Sergey Ushakov</em></p>
<p>Compatibility: &gt; PCL 1.7</p>
<p class="last">In this tutorial we will learn how to compute RoPS feature.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="gasd_estimation.html#gasd-estimation"><span class="std std-ref">Globally Aligned Spatial Distribution (GASD) descriptors</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="4%" />
<col width="96%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/gasd_estimation.png"><img alt="fe_10" src="_images/gasd_estimation.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Globally Aligned Spatial Distribution (GASD) descriptors</strong></p>
<p>Author: <em>Joao Paulo Lima</em></p>
<p>Compatibility: &gt;= PCL 1.9</p>
<p class="last">This document describes the Globally Aligned Spatial Distribution (GASD) global descriptor to be used for efficient object recognition and pose estimation.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
</ul>
</div></blockquote>
</div>
<div class="section" id="filtering">
<span id="filtering-tutorial"></span><h1>Filtering</h1>
<blockquote>
<div><ul>
<li><p class="first"><a class="reference internal" href="passthrough.html#passthrough"><span class="std std-ref">Filtering a PointCloud using a PassThrough filter</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="4%" />
<col width="96%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/passthrough.png"><img alt="fi_1" src="_images/passthrough.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Filtering a PointCloud using a PassThrough filter</strong></p>
<p>Author: <em>Radu B. Rusu</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">In this tutorial, we will learn how to remove points whose values fall inside/outside a user given interval along a specified dimension.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="voxel_grid.html#voxelgrid"><span class="std std-ref">Downsampling a PointCloud using a VoxelGrid filter</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="6%" />
<col width="94%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/voxel_grid.jpg"><img alt="fi_2" src="_images/voxel_grid.jpg" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Downsampling a PointCloud using a VoxelGrid filter</strong></p>
<p>Author: <em>Radu B. Rusu</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">In this tutorial, we will learn how to downsample (i.e., reduce the number of points) a Point Cloud.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="statistical_outlier.html#statistical-outlier-removal"><span class="std std-ref">Removing outliers using a StatisticalOutlierRemoval filter</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="5%" />
<col width="95%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/statistical_removal.jpg"><img alt="fi_3" src="_images/statistical_removal.jpg" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Removing sparse outliers using StatisticalOutlierRemoval</strong></p>
<p>Author: <em>Radu B. Rusu</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">In this tutorial, we will learn how to remove sparse outliers from noisy data, using StatisticalRemoval.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="project_inliers.html#project-inliers"><span class="std std-ref">Projecting points using a parametric model</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="6%" />
<col width="94%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/project_inliers.png"><img alt="fi_4" src="_images/project_inliers.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Projecting points using a parametric model</strong></p>
<p>Author: <em>Radu B. Rusu</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">In this tutorial, we will learn how to project points to a parametric model (i.e., plane).</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="extract_indices.html#extract-indices"><span class="std std-ref">Extracting indices from a PointCloud</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="6%" />
<col width="94%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/extract_indices.jpg"><img alt="fi_5" src="_images/extract_indices.jpg" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Extracting indices from a PointCloud</strong></p>
<p>Author: <em>Radu B. Rusu</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">In this tutorial, we will learn how to extract a set of indices given by a segmentation algorithm.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="remove_outliers.html#remove-outliers"><span class="std std-ref">Removing outliers using a Conditional or RadiusOutlier removal</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="5%" />
<col width="95%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/radius_outlier.png"><img alt="fi_6" src="_images/radius_outlier.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Removing outliers using a Conditional or RadiusOutlier removal</strong></p>
<p>Author: <em>Gabe OLeary</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">In this tutorial, we will learn how to remove outliers from noisy data, using ConditionalRemoval, RadiusOutlierRemoval.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
</ul>
</div></blockquote>
</div>
<div class="section" id="i-o">
<span id="id3"></span><h1>I/O</h1>
<blockquote>
<div><ul>
<li><p class="first"><a class="reference internal" href="pcd_file_format.html#pcd-file-format"><span class="std std-ref">The PCD (Point Cloud Data) file format</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="7%" />
<col width="93%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/PCD_icon.png"><img alt="i_o0" src="_images/PCD_icon.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>The PCD (Point Cloud Data) file format</strong></p>
<p>Author: <em>Radu B. Rusu</em></p>
<p>Compatibility: &gt; PCL 0.9</p>
<p class="last">This document describes the PCD file format, and the way it is used inside PCL.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="reading_pcd.html#reading-pcd"><span class="std std-ref">Reading Point Cloud data from PCD files</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="8%" />
<col width="93%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/read_pcd.jpg"><img alt="i_o1" src="_images/read_pcd.jpg" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Reading Point Cloud data from PCD files</strong></p>
<p>Author: <em>Radu B. Rusu</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">In this tutorial, we will learn how to read a Point Cloud from a PCD file.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="writing_pcd.html#writing-pcd"><span class="std std-ref">Writing Point Cloud data to PCD files</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="8%" />
<col width="92%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/write_pcd.jpg"><img alt="i_o2" src="_images/write_pcd.jpg" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Writing Point Cloud data to PCD files</strong></p>
<p>Author: <em>Radu B. Rusu</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">In this tutorial, we will learn how to write a Point Cloud to a PCD file.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="concatenate_clouds.html#concatenate-clouds"><span class="std std-ref">Concatenate the points of two Point Clouds</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="3%" />
<col width="97%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/concatenate_fields.jpg"><img alt="i_o3" src="_images/concatenate_fields.jpg" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Concatenate the fields or points of two Point Clouds</strong></p>
<p>Author: <em>Gabe OLeary / Radu B. Rusu</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">In this tutorial, we will learn how to concatenate both the fields and the point data of two Point Clouds. When concatenating fields, one PointClouds contains only <em>XYZ</em> data, and the other contains <em>Surface Normal</em> information.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="openni_grabber.html#openni-grabber"><span class="std std-ref">The OpenNI Grabber Framework in PCL</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="7%" />
<col width="93%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/openni_grabber.png"><img alt="i_o4" src="_images/openni_grabber.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Grabbing Point Clouds from an OpenNI camera</strong></p>
<p>Author: <em>Nico Blodow</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">In this tutorial, we will learn how to acquire point cloud data from an OpenNI camera.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="hdl_grabber.html#hdl-grabber"><span class="std std-ref">The Velodyne High Definition LiDAR (HDL) Grabber</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="7%" />
<col width="93%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/hdl_grabber.png"><img alt="i_o5" src="_images/hdl_grabber.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Grabbing Point Clouds from a Velodyne High Definition LiDAR (HDL)</strong></p>
<p>Author: <em>Keven Ring</em></p>
<p>Compatibility: &gt;= PCL 1.7</p>
<p class="last">In this tutorial, we will learn how to acquire point cloud data from a Velodyne HDL.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="dinast_grabber.html#dinast-grabber"><span class="std std-ref">The PCL Dinast Grabber Framework</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="7%" />
<col width="93%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/dinast_cyclopes.png"><img alt="i_o6" src="_images/dinast_cyclopes.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Grabbing Point Clouds from Dinast Cameras</strong></p>
<p>Author: <em>Marco A. Gutierrez</em></p>
<p>Compatibility: &gt;= PCL 1.7</p>
<p class="last">In this tutorial, we will learn how to acquire point cloud data from a Dinast camera.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="ensenso_cameras.html#ensenso-cameras"><span class="std std-ref">Grabbing point clouds from Ensenso cameras</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="6%" />
<col width="94%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/ids.png"><img alt="i_o7" src="_images/ids.png" style="height: 165px;" /></a></td>
<td><p class="first">Title: <strong>Grabbing point clouds from Ensenso cameras</strong></p>
<p>Author: <em>Victor Lamoine</em></p>
<p>Compatibility: &gt;= PCL 1.8.0</p>
<p class="last">In this tutorial, we will learn how to acquire point cloud data from an IDS-Imaging Ensenso camera.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="davidsdk.html#david-sdk"><span class="std std-ref">Grabbing point clouds / meshes from davidSDK scanners</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="6%" />
<col width="94%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/david.png"><img alt="i_o8" src="_images/david.png" style="height: 70px;" /></a></td>
<td><p class="first">Title: <strong>Grabbing point clouds / meshes from davidSDK scanners</strong></p>
<p>Author: <em>Victor Lamoine</em></p>
<p>Compatibility: &gt;= PCL 1.8.0</p>
<p class="last">In this tutorial, we will learn how to acquire point cloud or mesh data from a davidSDK scanner.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="depth_sense_grabber.html#depth-sense-grabber"><span class="std std-ref">Grabbing point clouds from DepthSense cameras</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="5%" />
<col width="95%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/creative_camera.jpg"><img alt="i_o9" src="_images/creative_camera.jpg" style="height: 70px;" /></a></td>
<td><p class="first">Title: <strong>Grabbing point clouds from DepthSense cameras</strong></p>
<p>Author: <em>Sergey Alexandrov</em></p>
<p>Compatibility: &gt;= PCL 1.8.0</p>
<p class="last">In this tutorial we will learn how to setup and use DepthSense cameras within PCL on both Linux and Windows platforms.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
</ul>
</div></blockquote>
</div>
<div class="section" id="keypoints">
<span id="keypoints-tutorial"></span><h1>Keypoints</h1>
<blockquote>
<div><ul>
<li><p class="first"><a class="reference internal" href="narf_keypoint_extraction.html#narf-keypoint-extraction"><span class="std std-ref">How to extract NARF keypoint from a range image</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="7%" />
<col width="93%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/narf_keypoint_extraction.png"><img alt="kp_1" src="_images/narf_keypoint_extraction.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>How to extract NARF keypoints from a range image</strong></p>
<p>Author: <em>Bastian Steder</em></p>
<p>Compatibility: &gt; 1.3</p>
<p class="last">In this tutorial, we will learn how to extract NARF keypoints from a range image.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
</ul>
</div></blockquote>
</div>
<div class="section" id="kdtree">
<span id="kdtree-tutorial"></span><h1>KdTree</h1>
<blockquote>
<div><ul>
<li><p class="first"><a class="reference internal" href="kdtree_search.html#kdtree-search"><span class="std std-ref">How to use a KdTree to search</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="6%" />
<col width="94%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/kdtree_search.png"><img alt="kd_1" src="_images/kdtree_search.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>KdTree Search</strong></p>
<p>Author: <em>Gabe OLeary</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">In this tutorial, we will learn how to search using the nearest neighbor method for k-d trees</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
</ul>
</div></blockquote>
</div>
<div class="section" id="octree">
<span id="octree-tutorial"></span><h1>Octree</h1>
<blockquote>
<div><ul>
<li><p class="first"><a class="reference internal" href="compression.html#octree-compression"><span class="std std-ref">Point Cloud Compression</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="6%" />
<col width="94%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/compression_tutorial.png"><img alt="oc_1" src="_images/compression_tutorial.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Point cloud compression</strong></p>
<p>Author: <em>Julius Kammerl</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">In this tutorial, we will learn how to compress a single point cloud and streams of point clouds.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="octree.html#octree-search"><span class="std std-ref">Spatial Partitioning and Search Operations with Octrees</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="5%" />
<col width="95%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/octree_img.png"><img alt="oc_2" src="_images/octree_img.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Octrees for spatial partitioning and neighbor search</strong></p>
<p>Author: <em>Julius Kammerl</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">In this tutorial, we will learn how to use octrees for spatial partitioning and nearest neighbor search.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="octree_change.html#octree-change-detection"><span class="std std-ref">Spatial change detection on unorganized point cloud data</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="6%" />
<col width="94%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/changedetectionThumb.png"><img alt="oc_3" src="_images/changedetectionThumb.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Spatial change detection on unorganized point cloud data</strong></p>
<p>Author: <em>Julius Kammerl</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">In this tutorial, we will learn how to use octrees for detecting spatial changes within point clouds.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
</ul>
</div></blockquote>
</div>
<div class="section" id="range-images">
<span id="id4"></span><h1>Range Images</h1>
<blockquote>
<div><ul>
<li><p class="first"><a class="reference internal" href="range_image_creation.html#range-image-creation"><span class="std std-ref">How to create a range image from a point cloud</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="6%" />
<col width="94%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/range_image_visualization.png"><img alt="ri_1" src="_images/range_image_visualization.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Creating Range Images from Point Clouds</strong></p>
<p>Author: <em>Bastian Steder</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">This tutorial demonstrates how to create a range image from a point cloud and a given sensor position.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="range_image_border_extraction.html#range-image-border-extraction"><span class="std std-ref">How to extract borders from range images</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="5%" />
<col width="95%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/range_image_border_points.png"><img alt="ri_2" src="_images/range_image_border_points.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Extracting borders from Range Images</strong></p>
<p>Author: <em>Bastian Steder</em></p>
<p>Compatibility: &gt; PCL 1.3</p>
<p class="last">This tutorial demonstrates how to extract borders (traversals from foreground to background) from a range image.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
</ul>
</div></blockquote>
</div>
<div class="section" id="recognition">
<span id="recognition-tutorial"></span><h1>Recognition</h1>
<blockquote>
<div><ul>
<li><p class="first"><a class="reference internal" href="correspondence_grouping.html#correspondence-grouping"><span class="std std-ref">3D Object Recognition based on Correspondence Grouping</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="5%" />
<col width="95%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/correspondence_grouping.jpg"><img alt="rc_1" src="_images/correspondence_grouping.jpg" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>The PCL Recognition API</strong></p>
<p>Author: <em>Tommaso Cavallari, Federico Tombari</em></p>
<p>Compatibility: &gt; PCL 1.6</p>
<p class="last">This tutorial aims at explaining how to perform 3D Object Recognition based on the pcl_recognition module.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="implicit_shape_model.html#implicit-shape-model"><span class="std std-ref">Implicit Shape Model</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="5%" />
<col width="95%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/implicit_shape_model.png"><img alt="rc_2" src="_images/implicit_shape_model.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Implicit Shape Model</strong></p>
<p>Author: <em>Sergey Ushakov</em></p>
<p>Compatibility: &gt; PCL 1.7</p>
<p class="last">In this tutorial we will learn how the Implicit Shape Model algorithm works and how to use it for finding objects centers.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="global_hypothesis_verification.html#global-hypothesis-verification"><span class="std std-ref">Tutorial: Hypothesis Verification for 3D Object Recognition</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="4%" />
<col width="96%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/multiple.png"><img alt="rc_3" src="_images/multiple.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Hypothesis Verification for 3D Object Recognition</strong></p>
<p>Author: <em>Daniele De Gregorio, Federico Tombari</em></p>
<p>Compatibility: &gt; PCL 1.7</p>
<p class="last">This tutorial aims at explaining how to do 3D object recognition in clutter by verifying model hypotheses in cluttered and heavily occluded 3D scenes.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
</ul>
</div></blockquote>
</div>
<div class="section" id="registration">
<span id="registration-tutorial"></span><h1>Registration</h1>
<blockquote>
<div><ul>
<li><p class="first"><a class="reference internal" href="registration_api.html#registration-api"><span class="std std-ref">The PCL Registration API</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="3%" />
<col width="97%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/registration_api.png"><img alt="re_1" src="_images/registration_api.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>The PCL Registration API</strong></p>
<p>Author: <em>Dirk Holz, Radu B. Rusu, Jochen Sprickerhof</em></p>
<p>Compatibility: &gt; PCL 1.5</p>
<p class="last">In this document, we describe the point cloud registration API and its modules: the estimation and rejection of point correspondences, and the estimation of rigid transformations.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="iterative_closest_point.html#iterative-closest-point"><span class="std std-ref">How to use iterative closest point</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="4%" />
<col width="96%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/iterative_closest_point.gif"><img alt="re_2" src="_images/iterative_closest_point.gif" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>How to use iterative closest point algorithm</strong></p>
<p>Author: <em>Gabe OLeary</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">This tutorial gives an example of how to use the iterative closest point algorithm to see if one PointCloud is just a rigid transformation of another PointCloud.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="pairwise_incremental_registration.html#pairwise-incremental-registration"><span class="std std-ref">How to incrementally register pairs of clouds</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="4%" />
<col width="96%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/iterative_closest_point.gif"><img alt="re_3" src="_images/iterative_closest_point.gif" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>How to incrementally register pairs of clouds</strong></p>
<p>Author: <em>Raphael Favier</em></p>
<p>Compatibility: &gt; PCL 1.4</p>
<p class="last">This document demonstrates using the Iterative Closest Point algorithm in order to incrementally register a series of point clouds two by two.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="interactive_icp.html#interactive-icp"><span class="std std-ref">Interactive Iterative Closest Point</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="8%" />
<col width="92%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/monkey.png"><img alt="re_7" src="_images/monkey.png" style="height: 120px;" /></a></td>
<td><p class="first">Title: <strong>Interactive ICP</strong></p>
<p>Author: <em>Victor Lamoine</em></p>
<p>Compatibility: &gt; PCL 1.5</p>
<p class="last">This tutorial will teach you how to build an interactive ICP program</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="normal_distributions_transform.html#normal-distributions-transform"><span class="std std-ref">How to use Normal Distributions Transform</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="5%" />
<col width="95%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/normal_distributions_transform.gif"><img alt="re_4" src="_images/normal_distributions_transform.gif" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>How to use the Normal Distributions Transform algorithm</strong></p>
<p>Author: <em>Brian Okorn</em></p>
<p>Compatibility: &gt; PCL 1.6</p>
<p class="last">This document demonstrates using the Normal Distributions Transform algorithm to register two large point clouds.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="in_hand_scanner.html#in-hand-scanner"><span class="std std-ref">In-hand scanner for small objects</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="5%" />
<col width="95%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/ihs_lion_model.png"><img alt="re_5" src="_images/ihs_lion_model.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>How to use the In-hand scanner for small objects</strong></p>
<p>Author: <em>Martin Saelzle</em></p>
<p>Compatibility: &gt;= PCL 1.7</p>
<p class="last">This document shows how to use the In-hand scanner applications to obtain colored models of small objects with RGB-D cameras.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="alignment_prerejective.html#alignment-prerejective"><span class="std std-ref">Robust pose estimation of rigid objects</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="5%" />
<col width="95%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/alignment_prerejective_1.png"><img alt="re_6" src="_images/alignment_prerejective_1.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Robust pose estimation of rigid objects</strong></p>
<p>Author: <em>Anders Glent Buch</em></p>
<p>Compatibility: &gt;= PCL 1.7</p>
<p class="last">In this tutorial, we show how to find the alignment pose of a rigid object in a scene with clutter and occlusions.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
</ul>
</div></blockquote>
</div>
<div class="section" id="sample-consensus">
<span id="id5"></span><h1>Sample Consensus</h1>
<blockquote>
<div><ul>
<li><p class="first"><a class="reference internal" href="random_sample_consensus.html#random-sample-consensus"><span class="std std-ref">How to use Random Sample Consensus model</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="5%" />
<col width="95%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/ransac_outliers_plane.png"><img alt="sc_1" src="_images/ransac_outliers_plane.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>How to use Random Sample Consensus model</strong></p>
<p>Author: <em>Gabe OLeary</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">In this tutorial we learn how to use a RandomSampleConsensus with a plane model to obtain the cloud fitting to this model.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
</ul>
</div></blockquote>
</div>
<div class="section" id="segmentation">
<span id="segmentation-tutorial"></span><h1>Segmentation</h1>
<blockquote>
<div><ul>
<li><p class="first"><a class="reference internal" href="planar_segmentation.html#planar-segmentation"><span class="std std-ref">Plane model segmentation</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="6%" />
<col width="94%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/planar_segmentation.jpg"><img alt="se_1" src="_images/planar_segmentation.jpg" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Plane model segmentation</strong></p>
<p>Author: <em>Radu B. Rusu</em></p>
<p>Compatibility: &gt; PCL 1.3</p>
<p class="last">In this tutorial, we will learn how to segment arbitrary plane models from a given point cloud dataset.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="cylinder_segmentation.html#cylinder-segmentation"><span class="std std-ref">Cylinder model segmentation</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="5%" />
<col width="95%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/cylinder_segmentation.jpg"><img alt="se_2" src="_images/cylinder_segmentation.jpg" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Cylinder model segmentation</strong></p>
<p>Author: <em>Radu B. Rusu</em></p>
<p>Compatibility: &gt; PCL 1.3</p>
<p class="last">In this tutorial, we will learn how to segment arbitrary cylindrical models from a given point cloud dataset.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="cluster_extraction.html#cluster-extraction"><span class="std std-ref">Euclidean Cluster Extraction</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="5%" />
<col width="95%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/cluster_extraction.jpg"><img alt="se_3" src="_images/cluster_extraction.jpg" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Euclidean Cluster Extraction</strong></p>
<p>Author: <em>Serkan Tuerker</em></p>
<p>Compatibility: &gt; PCL 1.3</p>
<p class="last">In this tutorial we will learn how to extract Euclidean clusters with the <code class="docutils literal notranslate"><span class="pre">pcl::EuclideanClusterExtraction</span></code> class.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="region_growing_segmentation.html#region-growing-segmentation"><span class="std std-ref">Region growing segmentation</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="7%" />
<col width="93%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/region_growing_segmentation.jpg"><img alt="se_4" src="_images/region_growing_segmentation.jpg" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Region Growing Segmentation</strong></p>
<p>Author: <em>Sergey Ushakov</em></p>
<p>Compatibility: &gt;= PCL 1.7</p>
<p class="last">In this tutorial we will learn how to use region growing segmentation algorithm.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="region_growing_rgb_segmentation.html#region-growing-rgb-segmentation"><span class="std std-ref">Color-based region growing segmentation</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="6%" />
<col width="94%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/region_growing_rgb_segmentation.jpg"><img alt="se_5" src="_images/region_growing_rgb_segmentation.jpg" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Color-based Region Growing Segmentation</strong></p>
<p>Author: <em>Sergey Ushakov</em></p>
<p>Compatibility: &gt;= PCL 1.7</p>
<p class="last">In this tutorial we will learn how to use color-based region growing segmentation algorithm.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="min_cut_segmentation.html#min-cut-segmentation"><span class="std std-ref">Min-Cut Based Segmentation</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="7%" />
<col width="93%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/min_cut_segmentation.jpg"><img alt="se_6" src="_images/min_cut_segmentation.jpg" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Min-Cut Based Segmentation</strong></p>
<p>Author: <em>Sergey Ushakov</em></p>
<p>Compatibility: &gt;= PCL 1.7</p>
<p class="last">In this tutorial we will learn how to use min-cut based segmentation algorithm.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="conditional_euclidean_clustering.html#conditional-euclidean-clustering"><span class="std std-ref">Conditional Euclidean Clustering</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="5%" />
<col width="95%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/conditional_euclidean_clustering.jpg"><img alt="se_7" src="_images/conditional_euclidean_clustering.jpg" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Conditional Euclidean Clustering</strong></p>
<p>Author: <em>Frits Florentinus</em></p>
<p>Compatibility: &gt;= PCL 1.7</p>
<p class="last">This tutorial describes how to use the Conditional Euclidean Clustering class in PCL:
A segmentation algorithm that clusters points based on Euclidean distance and a user-customizable condition that needs to hold.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="don_segmentation.html#don-segmentation"><span class="std std-ref">Difference of Normals Based Segmentation</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="6%" />
<col width="94%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/don_segmentation.png"><img alt="se_8" src="_images/don_segmentation.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Difference of Normals Based Segmentation</strong></p>
<p>Author: <em>Yani Ioannou</em></p>
<p>Compatibility: &gt;= PCL 1.7</p>
<p class="last">In this tutorial we will learn how to use the difference of normals feature for segmentation.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="supervoxel_clustering.html#supervoxel-clustering"><span class="std std-ref">Clustering of Pointclouds into Supervoxels - Theoretical primer</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="6%" />
<col width="94%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/supervoxel_clustering_small.png"><img alt="se_9" src="_images/supervoxel_clustering_small.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Supervoxel Clustering</strong></p>
<p>Author: <em>Jeremie Papon</em></p>
<p>Compatibility: &gt;= PCL 1.8</p>
<p class="last">In this tutorial, we show to break a pointcloud into the mid-level supervoxel representation.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="progressive_morphological_filtering.html#progressive-morphological-filtering"><span class="std std-ref">Identifying ground returns using ProgressiveMorphologicalFilter segmentation</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="7%" />
<col width="93%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/progressive_morphological_filter.png"><img alt="se_10" src="_images/progressive_morphological_filter.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Progressive Morphological Filtering</strong></p>
<p>Author: <em>Brad Chambers</em></p>
<p>Compatibility: &gt;= PCL 1.8</p>
<p class="last">In this tutorial, we show how to segment a point cloud into ground and non-ground returns.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="model_outlier_removal.html#model-outlier-removal"><span class="std std-ref">Filtering a PointCloud using ModelOutlierRemoval</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="8%" />
<col width="92%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/pcl_logo.png"><img alt="se_11" src="_images/pcl_logo.png" style="height: 75px;" /></a></td>
<td><p class="first">Title: <strong>Model outlier removal</strong></p>
<p>Author: <em>Timo Häckel</em></p>
<p>Compatibility: &gt;= PCL 1.7.2</p>
<p class="last">This tutorial describes how to extract points from a point cloud using SAC models</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
</ul>
</div></blockquote>
</div>
<div class="section" id="surface">
<span id="surface-tutorial"></span><h1>Surface</h1>
<blockquote>
<div><ul>
<li><p class="first"><a class="reference internal" href="resampling.html#moving-least-squares"><span class="std std-ref">Smoothing and normal estimation based on polynomial reconstruction</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="4%" />
<col width="96%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/resampling.jpg"><img alt="su_1" src="_images/resampling.jpg" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Smoothing and normal estimation based on polynomial reconstruction</strong></p>
<p>Author: <em>Zoltan-Csaba Marton, Alexandru E. Ichim</em></p>
<p>Compatibility: &gt; PCL 1.6</p>
<p class="last">In this tutorial, we will learn how to construct and run a Moving Least Squares (MLS) algorithm to obtain smoothed XYZ coordinates and normals.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="hull_2d.html#hull-2d"><span class="std std-ref">Construct a concave or convex hull polygon for a plane model</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="4%" />
<col width="96%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/convex_hull_2d.jpg"><img alt="su_2" src="_images/convex_hull_2d.jpg" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Construct a concave or convex hull polygon for a plane model</strong></p>
<p>Author: <em>Gabe OLeary, Radu B. Rusu</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">In this tutorial we will learn how to calculate a simple 2D concave or convex hull polygon for a set of points supported by a plane.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="greedy_projection.html#greedy-triangulation"><span class="std std-ref">Fast triangulation of unordered point clouds</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="3%" />
<col width="97%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/greedy_triangulation.png"><img alt="su_3" src="_images/greedy_triangulation.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Fast triangulation of unordered point clouds</strong></p>
<p>Author: <em>Zoltan-Csaba Marton</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">In this tutorial we will learn how to run a greedy triangulation algorithm on a PointCloud with normals to obtain a triangle mesh based on projections of the local neighborhood.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="bspline_fitting.html#bspline-fitting"><span class="std std-ref">Fitting trimmed B-splines to unordered point clouds</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="5%" />
<col width="95%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/bspline_bunny.png"><img alt="su_4" src="_images/bspline_bunny.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Fitting trimmed B-splines to unordered point clouds</strong></p>
<p>Author: <em>Thomas Mörwald</em></p>
<p>Compatibility: &gt; PCL 1.7</p>
<p class="last">In this tutorial we will learn how to reconstruct a smooth surface from an unordered point-cloud by fitting trimmed B-splines.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
</ul>
</div></blockquote>
</div>
<div class="section" id="visualization">
<span id="visualization-tutorial"></span><h1>Visualization</h1>
<blockquote>
<div><ul>
<li><p class="first"><a class="reference internal" href="cloud_viewer.html#cloud-viewer"><span class="std std-ref">The CloudViewer</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="8%" />
<col width="92%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/cloud_viewer.jpg"><img alt="vi_1" src="_images/cloud_viewer.jpg" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Visualizing Point Clouds</strong></p>
<p>Author: <em>Ethan Rublee</em></p>
<p>Compatibility: &gt; PCL 1.0</p>
<p class="last">This tutorial demonstrates how to use the pcl visualization tools.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="range_image_visualization.html#range-image-visualization"><span class="std std-ref">How to visualize a range image</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="7%" />
<col width="93%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/range_image_visualization.png"><img alt="vi_2" src="_images/range_image_visualization.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Visualizing Range Images</strong></p>
<p>Author: <em>Bastian Steder</em></p>
<p>Compatibility: &gt; PCL 1.3</p>
<p class="last">This tutorial demonstrates how to use the pcl visualization tools for range images.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="pcl_visualizer.html#pcl-visualizer"><span class="std std-ref">PCLVisualizer</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="5%" />
<col width="95%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/pcl_visualizer_viewports.png"><img alt="vi_3" src="_images/pcl_visualizer_viewports.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>PCLVisualizer</strong></p>
<p>Author: <em>Geoffrey Biggs</em></p>
<p>Compatibility: &gt; PCL 1.3</p>
<p class="last">This tutorial demonstrates how to use the PCLVisualizer class for powerful visualisation of point clouds and related data.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="pcl_plotter.html#pcl-plotter"><span class="std std-ref">PCLPlotter</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="4%" />
<col width="96%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/pcl_plotter_comprational.png"><img alt="vi_4" src="_images/pcl_plotter_comprational.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>PCLPlotter</strong></p>
<p>Author: <em>Kripasindhu Sarkar</em></p>
<p>Compatibility: &gt; PCL 1.7</p>
<p class="last">This tutorial demonstrates how to use the PCLPlotter class for powerful visualisation of plots, charts and histograms of raw data and explicit functions.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="walkthrough.html#visualization"><span class="std std-ref">Visualization</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="7%" />
<col width="93%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/visualization_small.png"><img alt="vi_5" src="_images/visualization_small.png" style="height: 120px;" /></a></td>
<td><p class="first">Title: <strong>PCL Visualization overview</strong></p>
<p>Author: <em>Radu B. Rusu</em></p>
<p>Compatibility: &gt;= PCL 1.0</p>
<p class="last">This tutorial will give an overview on the usage of the PCL visualization tools.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="qt_visualizer.html#qt-visualizer"><span class="std std-ref">Create a PCL visualizer in Qt with cmake</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="7%" />
<col width="93%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/qt.png"><img alt="vi_6" src="_images/qt.png" style="height: 128px;" /></a></td>
<td><p class="first">Title: <strong>Create a PCL visualizer in Qt with cmake</strong></p>
<p>Author: <em>Victor Lamoine</em></p>
<p>Compatibility: &gt; PCL 1.5</p>
<p class="last">This tutorial shows you how to create a PCL visualizer within a Qt application.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="qt_colorize_cloud.html#qt-colorize-cloud"><span class="std std-ref">Create a PCL visualizer in Qt to colorize clouds</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="7%" />
<col width="93%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/qt.png"><img alt="vi_7" src="_images/qt.png" style="height: 128px;" /></a></td>
<td><p class="first">Title: <strong>Create a PCL visualizer in Qt to colorize clouds</strong></p>
<blockquote class="last">
<div><p>Author: <em>Victor Lamoine</em></p>
<p>Compatibility: &gt; PCL 1.5</p>
<p>This tutorial shows you how to color point clouds within a Qt application.</p>
</div></blockquote>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
</ul>
</div></blockquote>
</div>
<div class="section" id="applications">
<span id="applications-tutorial"></span><h1>Applications</h1>
<blockquote>
<div><ul>
<li><p class="first"><a class="reference internal" href="template_alignment.html#template-alignment"><span class="std std-ref">Aligning object templates to a point cloud</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="3%" />
<col width="97%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/template_alignment_1.jpg"><img alt="ap_1" src="_images/template_alignment_1.jpg" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Aligning object templates to a point cloud</strong></p>
<p>Author: <em>Michael Dixon</em></p>
<p>Compatibility: &gt; PCL 1.3</p>
<p class="last">This tutorial gives an example of how some of the tools covered in the previous tutorials can be combined to solve a higher level problem — aligning a previously captured model of an object to some newly captured data.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="vfh_recognition.html#vfh-recognition"><span class="std std-ref">Cluster Recognition and 6DOF Pose Estimation using VFH descriptors</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="4%" />
<col width="96%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/vfh_recognition.jpg"><img alt="ap_2" src="_images/vfh_recognition.jpg" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Cluster Recognition and 6DOF Pose Estimation using VFH descriptors</strong></p>
<p>Author: <em>Radu B. Rusu</em></p>
<p>Compatibility: &gt; PCL 0.8</p>
<p class="last">In this tutorial we show how the Viewpoint Feature Histogram (VFH) descriptor can be used to recognize similar clusters in terms of their geometry.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="mobile_streaming.html#mobile-streaming"><span class="std std-ref">Point Cloud Streaming to Mobile Devices with Real-time Visualization</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="4%" />
<col width="96%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/mobile_streaming_1.jpg"><img alt="ap_3" src="_images/mobile_streaming_1.jpg" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Point Cloud Streaming to Mobile Devices with Real-time Visualization</strong></p>
<p>Author: <em>Pat Marion</em></p>
<p>Compatibility: &gt; PCL 1.3</p>
<p class="last">This tutorial describes how to send point cloud data over the network from a desktop server to a client running on a mobile device.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="ground_based_rgbd_people_detection.html#ground-based-rgbd-people-detection"><span class="std std-ref">Detecting people on a ground plane with RGB-D data</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="6%" />
<col width="94%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/Index_photo.jpg"><img alt="ap_5" src="_images/Index_photo.jpg" style="height: 120px;" /></a></td>
<td><p class="first">Title: <strong>Detecting people on a ground plane with RGB-D data</strong></p>
<p>Author: <em>Matteo Munaro</em></p>
<p>Compatibility: &gt;= PCL 1.7</p>
<p class="last">This tutorial presents a method for detecting people on a ground plane with RGB-D data.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
</ul>
</div></blockquote>
</div>
<div class="section" id="gpu">
<span id="id6"></span><h1>GPU</h1>
<blockquote>
<div><blockquote>
<div><ul>
<li><p class="first"><a class="reference internal" href="gpu_install.html#gpu-install"><span class="std std-ref">Configuring your PC to use your Nvidia GPU with PCL</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="8%" />
<col width="92%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/PCD_icon.png"><img alt="gp_1" src="_images/PCD_icon.png" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>GPU Installation</strong></p>
<p>Author: <em>Koen Buys</em></p>
<p>Compatibility: PCL git master</p>
<p class="last">This tutorial explains how to configure PCL to use with a Nvidia GPU</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="using_kinfu_large_scale.html#using-kinfu-large-scale"><span class="std std-ref">Using Kinfu Large Scale to generate a textured mesh</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="3%" />
<col width="97%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/using_kinfu_large_scale.jpg"><img alt="ap_4" src="_images/using_kinfu_large_scale.jpg" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>Using Kinfu Large Scale to generate a textured mesh</strong></p>
<p>Author: <em>Francisco Heredia and Raphael Favier</em></p>
<p>Compatibility: PCL git master</p>
<p class="last">This tutorial demonstrates how to use KinFu Large Scale to produce a mesh from a room, and apply texture information in post-processing for a more appealing visual result.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="first"><a class="reference internal" href="gpu_people.html#gpu-people"><span class="std std-ref">Detecting people and their poses using PointCloud Library</span></a></p>
<blockquote>
<div><table border="1" class="docutils">
<colgroup>
<col width="9%" />
<col width="91%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><a class="reference internal" href="_images/c2_100.jpg"><img alt="gp_2" src="_images/c2_100.jpg" style="height: 100px;" /></a></td>
<td><p class="first">Title: <strong>People Detection</strong></p>
<p>Author: <em>Koen Buys</em></p>
<p>Compatibility: PCL git master</p>
<p class="last">This tutorial presents a method for people and pose detection.</p>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
</ul>
</div></blockquote>
</div></blockquote>
</div>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>