<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Pcl on 小幻Coding - 记录成长</title><link>https://xhcoding.cn/tags/pcl/</link><description>Recent content in Pcl on 小幻Coding - 记录成长</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Tue, 21 Apr 2026 17:29:00 +0800</lastBuildDate><atom:link href="https://xhcoding.cn/tags/pcl/index.xml" rel="self" type="application/rss+xml"/><item><title>PCL 点云手记</title><link>https://xhcoding.cn/post/20260421t172930--pcl-%E7%82%B9%E4%BA%91%E6%89%8B%E8%AE%B0__pcl_robot_ros2/</link><pubDate>Tue, 21 Apr 2026 17:29:00 +0800</pubDate><guid>https://xhcoding.cn/post/20260421t172930--pcl-%E7%82%B9%E4%BA%91%E6%89%8B%E8%AE%B0__pcl_robot_ros2/</guid><description>&lt;p&gt;点云即三维空间中点的集合，PCL 库专门处理点云数据，包括点云进行滤波，分割，匹配，查找等操作&lt;/p&gt;
&lt;h2 id="数据结构"&gt;数据结构&lt;/h2&gt;
&lt;p&gt;PCL 使用 &lt;code&gt;pcl::PointCloud&amp;lt;T&amp;gt;&lt;/code&gt; 来存储点云，其中 &lt;code&gt;T&lt;/code&gt; 是点的类型，下面是一些 PCL 定义的常用点类型：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;pcl::PointXYZ&lt;/code&gt; : 仅包括三维空间坐标信息&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pcl::PointXYZI&lt;/code&gt; : 包括三维坐标和强度值，常用于激光雷达&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pcl::PointXYZL&lt;/code&gt; : 包括三维坐标和标签，常用于点云分割或分类&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pcl::PointXY&lt;/code&gt; : 二维点结构，用于处理投影或二维平面数据&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pcl::PointXYZRGB&lt;/code&gt; : 包含三维坐标和 RGB 颜色信息&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pcl::PointXYZRGBA&lt;/code&gt; : 包含三维坐标和 RGBA 颜色信息&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;还有更多的点类型，用于不同的任务会，后续会逐渐接触&lt;/p&gt;
&lt;p&gt;&lt;code&gt;pcl::PointCloud&amp;lt;T&amp;gt;&lt;/code&gt; 中包括以下主要的数据成员：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;width : 点云数据的宽度，对于无组织的点，宽度就是点的个数，对于有组织的点，宽度就是一行点个数&lt;/li&gt;
&lt;li&gt;height : 点云数据的高度，对于无组织的数据，高度为 1， 对于有组织的点，高度就是行数，总的点数量为 &lt;code&gt;width * height&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;points : 点的数据&lt;/li&gt;
&lt;li&gt;is_dense : 点是否包含 &lt;code&gt;Inf/NaN&lt;/code&gt; 值&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;pcl::PointCloud&amp;lt;T&amp;gt;&lt;/code&gt; 的增删遍历点的成员函数和标准库中的集合类似，也支持迭代器&lt;/p&gt;
&lt;p&gt;&lt;a id="code-snippet--genPointCloud"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-0-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-0-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-0-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-0-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-0-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-0-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-0-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-0-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-0-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-0-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-0-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-0-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-0-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-0-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-0-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-0-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-0-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-0-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-0-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-0-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-0-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-0-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-0-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-0-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-0-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-0-13"&gt;13&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-0-14"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-0-14"&gt;14&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-0-15"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-0-15"&gt;15&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-0-16"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-0-16"&gt;16&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-0-17"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-0-17"&gt;17&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-0-18"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-0-18"&gt;18&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_cloud.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;template&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;typename&lt;/span&gt; T&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;T&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr genPointCloud(&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; n)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; srand(time(&lt;span style="color:#a2f"&gt;NULL&lt;/span&gt;));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;typename&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;T&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr cloud(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;T&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;());
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;resize(n);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; i &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;; i &lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt; n; i&lt;span style="color:#666"&gt;++&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; p &lt;span style="color:#666"&gt;=&lt;/span&gt; (&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud)[i];
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p.x &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1024&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt; rand () &lt;span style="color:#666"&gt;/&lt;/span&gt; (RAND_MAX &lt;span style="color:#666"&gt;+&lt;/span&gt; &lt;span style="color:#666"&gt;1.0f&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p.y &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1024&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt; rand () &lt;span style="color:#666"&gt;/&lt;/span&gt; (RAND_MAX &lt;span style="color:#666"&gt;+&lt;/span&gt; &lt;span style="color:#666"&gt;1.0f&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p.z &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1024&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt; rand () &lt;span style="color:#666"&gt;/&lt;/span&gt; (RAND_MAX &lt;span style="color:#666"&gt;+&lt;/span&gt; &lt;span style="color:#666"&gt;1.0f&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; cloud;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-1-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-1-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-1-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-1-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-1-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-1-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-1-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-1-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-1-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-1-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-1-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-1-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-1-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-1-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-1-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-1-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-1-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-1-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-1-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-1-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-1-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-1-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-1-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-1-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-1-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-1-13"&gt;13&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-1-14"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-1-14"&gt;14&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-1-15"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-1-15"&gt;15&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;format&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_cloud.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; &lt;span style="color:#00a000"&gt;main&lt;/span&gt;(&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; argc, &lt;span style="color:#0b0;font-weight:bold"&gt;char&lt;/span&gt;&lt;span style="color:#666"&gt;*&lt;/span&gt; argv[]) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; cloud &lt;span style="color:#666"&gt;=&lt;/span&gt; genPointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;(&lt;span style="color:#666"&gt;5&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;format(&lt;span style="color:#b44"&gt;&amp;#34;width: {}, height: {}, is_dense: {}, is organized: {}&lt;/span&gt;&lt;span style="color:#b62;font-weight:bold"&gt;\n&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;&lt;/span&gt;, cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;width, cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;height, cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;is_dense, cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;isOrganized());
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (&lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; &lt;span style="color:#a0a000"&gt;point&lt;/span&gt; : &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;format(&lt;span style="color:#b44"&gt;&amp;#34;({}, {}, {})&lt;/span&gt;&lt;span style="color:#b62;font-weight:bold"&gt;\n&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;&lt;/span&gt;, point.x, point.y, point.z);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-2-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-2-1"&gt;1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-2-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-2-2"&gt;2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-2-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-2-3"&gt;3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-2-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-2-4"&gt;4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-2-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-2-5"&gt;5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-2-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-2-6"&gt;6&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;width: 5, height: 1, is_dense: true, is organized: false
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(-0.042350292, 0.7831731, 0.9874444)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(-0.11391306, 0.35958624, 0.083025455)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(-0.57813406, -0.5630765, -0.2032013)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(-0.30399895, -0.48886824, -0.71495104)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(0.69121265, -0.97114754, -0.49422264)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="io"&gt;IO&lt;/h2&gt;
&lt;h3 id="文件"&gt;文件&lt;/h3&gt;
&lt;p&gt;PCL 保存文件的格式为 &lt;code&gt;.pcd&lt;/code&gt; ，下面是读写 PCD 文件的例子&lt;/p&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-13"&gt;13&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-14"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-14"&gt;14&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-15"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-15"&gt;15&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-16"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-16"&gt;16&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-17"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-17"&gt;17&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-18"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-18"&gt;18&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-19"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-19"&gt;19&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-20"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-20"&gt;20&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-21"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-21"&gt;21&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-22"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-22"&gt;22&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-23"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-23"&gt;23&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-24"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-24"&gt;24&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-25"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-25"&gt;25&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-26"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-26"&gt;26&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-27"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-27"&gt;27&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-3-28"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-3-28"&gt;28&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/io/pcd_io.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; &lt;span style="color:#00a000"&gt;main&lt;/span&gt;(&lt;span style="color:#b44"&gt;[[maybe_unused]] int argc, [[maybe_unused]]&lt;/span&gt; &lt;span style="color:#0b0;font-weight:bold"&gt;char&lt;/span&gt;&lt;span style="color:#666"&gt;*&lt;/span&gt; argv[]) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; cloud &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt;genPointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;(&lt;span style="color:#666"&gt;5&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;io&lt;span style="color:#666"&gt;::&lt;/span&gt;savePCDFileASCII(&lt;span style="color:#b44"&gt;&amp;#34;/tmp/test_pcd.pcd&amp;#34;&lt;/span&gt;, cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Saved &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; cloud.size() &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; data points to test_pcd.pcd.&amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (&lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; &lt;span style="color:#a0a000"&gt;point&lt;/span&gt; : cloud) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.x &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.y &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.z &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr cloud_ptr(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;if&lt;/span&gt; (pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;io&lt;span style="color:#666"&gt;::&lt;/span&gt;loadPCDFile(&lt;span style="color:#b44"&gt;&amp;#34;/tmp/test_pcd.pcd&amp;#34;&lt;/span&gt;, &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_ptr) &lt;span style="color:#666"&gt;==&lt;/span&gt; &lt;span style="color:#666"&gt;-&lt;/span&gt;&lt;span style="color:#666"&gt;1&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; PCL_ERROR(&lt;span style="color:#b44"&gt;&amp;#34;Couldn&amp;#39;t read file&lt;/span&gt;&lt;span style="color:#b62;font-weight:bold"&gt;\n&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#666"&gt;-&lt;/span&gt;&lt;span style="color:#666"&gt;1&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Loaded &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; cloud_ptr&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;width &lt;span style="color:#666"&gt;*&lt;/span&gt; cloud_ptr&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;height &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; data points&amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (&lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; &lt;span style="color:#a0a000"&gt;point&lt;/span&gt; : &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_ptr) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.x &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.y &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.z &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-4-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-4-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-4-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-4-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-4-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-4-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-4-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-4-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-4-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-4-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-4-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-4-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-4-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-4-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-4-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-4-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-4-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-4-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-4-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-4-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-4-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-4-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-4-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-4-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Saved 5 data points to test_pcd.pcd.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;0.902143 0.32537 -0.246792
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;-0.427928 -0.0364971 -0.7693
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;0.0920715 -0.533491 0.701829
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;-0.292022 0.932315 0.600912
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;0.245783 0.191243 -0.526157
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Loaded 5 data points
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;0.902143 0.32537 -0.246792
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;-0.427928 -0.0364971 -0.7693
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;0.0920715 -0.533491 0.701829
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;-0.292022 0.932315 0.600912
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;0.245783 0.191243 -0.526157&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;pcd 文件内容如下：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;VERSION 0.7 # 版本
FIELDS x y z # data 中点的字段格式
SIZE 4 4 4 # 每个字段的大小
TYPE F F F # 每个字段的类型
COUNT 1 1 1 # 每个字段元素数量
WIDTH 5 # 宽度
HEIGHT 1 # 高度
VIEWPOINT 0 0 0 1 0 0 0 # 平移变换和旋转变换
POINTS 5 # 点的数量
DATA ascii # 数据格式，ascii 表示文本格式，每行一个点， binary 为二进制格式，binary_compressed 为压缩的二进制格式
0.902143 0.32537 -0.246792
-0.427928 -0.0364971 -0.7693
0.0920715 -0.533491 0.701829
-0.292022 0.932315 0.600912
0.245783 0.191243 -0.526157&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="可视化"&gt;可视化&lt;/h2&gt;
&lt;p&gt;可以使用 &lt;code&gt;pcl_viewer&lt;/code&gt; 工具查看 &lt;code&gt;pcd&lt;/code&gt; 文件&lt;/p&gt;
&lt;p&gt;或者在代码中调用 &lt;code&gt;pcl_viewer&lt;/code&gt; 可视化点云&lt;/p&gt;
&lt;p&gt;&lt;a id="code-snippet--pclViewer"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-10"&gt; 10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-11"&gt; 11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-12"&gt; 12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-13"&gt; 13&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-14"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-14"&gt; 14&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-15"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-15"&gt; 15&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-16"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-16"&gt; 16&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-17"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-17"&gt; 17&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-18"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-18"&gt; 18&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-19"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-19"&gt; 19&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-20"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-20"&gt; 20&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-21"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-21"&gt; 21&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-22"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-22"&gt; 22&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-23"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-23"&gt; 23&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-24"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-24"&gt; 24&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-25"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-25"&gt; 25&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-26"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-26"&gt; 26&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-27"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-27"&gt; 27&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-28"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-28"&gt; 28&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-29"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-29"&gt; 29&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-30"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-30"&gt; 30&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-31"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-31"&gt; 31&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-32"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-32"&gt; 32&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-33"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-33"&gt; 33&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-34"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-34"&gt; 34&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-35"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-35"&gt; 35&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-36"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-36"&gt; 36&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-37"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-37"&gt; 37&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-38"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-38"&gt; 38&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-39"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-39"&gt; 39&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-40"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-40"&gt; 40&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-41"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-41"&gt; 41&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-42"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-42"&gt; 42&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-43"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-43"&gt; 43&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-44"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-44"&gt; 44&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-45"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-45"&gt; 45&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-46"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-46"&gt; 46&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-47"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-47"&gt; 47&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-48"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-48"&gt; 48&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-49"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-49"&gt; 49&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-50"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-50"&gt; 50&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-51"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-51"&gt; 51&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-52"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-52"&gt; 52&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-53"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-53"&gt; 53&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-54"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-54"&gt; 54&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-55"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-55"&gt; 55&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-56"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-56"&gt; 56&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-57"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-57"&gt; 57&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-58"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-58"&gt; 58&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-59"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-59"&gt; 59&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-60"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-60"&gt; 60&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-61"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-61"&gt; 61&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-62"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-62"&gt; 62&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-63"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-63"&gt; 63&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-64"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-64"&gt; 64&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-65"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-65"&gt; 65&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-66"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-66"&gt; 66&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-67"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-67"&gt; 67&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-68"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-68"&gt; 68&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-69"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-69"&gt; 69&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-70"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-70"&gt; 70&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-71"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-71"&gt; 71&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-72"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-72"&gt; 72&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-73"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-73"&gt; 73&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-74"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-74"&gt; 74&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-75"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-75"&gt; 75&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-76"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-76"&gt; 76&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-77"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-77"&gt; 77&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-78"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-78"&gt; 78&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-79"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-79"&gt; 79&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-80"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-80"&gt; 80&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-81"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-81"&gt; 81&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-82"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-82"&gt; 82&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-83"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-83"&gt; 83&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-84"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-84"&gt; 84&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-85"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-85"&gt; 85&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-86"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-86"&gt; 86&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-87"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-87"&gt; 87&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-88"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-88"&gt; 88&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-89"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-89"&gt; 89&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-90"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-90"&gt; 90&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-91"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-91"&gt; 91&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-92"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-92"&gt; 92&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-93"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-93"&gt; 93&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-94"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-94"&gt; 94&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-95"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-95"&gt; 95&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-96"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-96"&gt; 96&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-97"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-97"&gt; 97&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-98"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-98"&gt; 98&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-99"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-99"&gt; 99&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-100"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-100"&gt;100&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-101"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-101"&gt;101&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-5-102"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-5-102"&gt;102&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_cloud.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/visualization/pcl_visualizer.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;struct&lt;/span&gt; &lt;span style="color:#00f"&gt;Color&lt;/span&gt; { &lt;span style="color:#0b0;font-weight:bold"&gt;uint8_t&lt;/span&gt; r, g, b; };
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080;font-style:italic"&gt;// 传入 n，返回 n 个视觉上区分度大的颜色
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;std&lt;span style="color:#666"&gt;::&lt;/span&gt;vector&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;Color&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; generateColors(&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; n)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;vector&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;Color&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; colors;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; colors.reserve(n);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; i &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;; i &lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt; n; &lt;span style="color:#666"&gt;++&lt;/span&gt;i)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 黄金角度 137.508°，每迭代一次旋转一个角度
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 人眼对色相变化最敏感，所以用 HSV 空间的 H 均匀分布
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#0b0;font-weight:bold"&gt;double&lt;/span&gt; hue &lt;span style="color:#666"&gt;=&lt;/span&gt; fmod(i &lt;span style="color:#666"&gt;*&lt;/span&gt; &lt;span style="color:#666"&gt;137.508&lt;/span&gt;, &lt;span style="color:#666"&gt;360.0&lt;/span&gt;); &lt;span style="color:#080;font-style:italic"&gt;// 0~360
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#0b0;font-weight:bold"&gt;double&lt;/span&gt; s &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;0.85&lt;/span&gt;; &lt;span style="color:#080;font-style:italic"&gt;// 饱和度
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#0b0;font-weight:bold"&gt;double&lt;/span&gt; v &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;0.95&lt;/span&gt;; &lt;span style="color:#080;font-style:italic"&gt;// 明度
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// HSV → RGB
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#0b0;font-weight:bold"&gt;double&lt;/span&gt; c &lt;span style="color:#666"&gt;=&lt;/span&gt; v &lt;span style="color:#666"&gt;*&lt;/span&gt; s;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#0b0;font-weight:bold"&gt;double&lt;/span&gt; x &lt;span style="color:#666"&gt;=&lt;/span&gt; c &lt;span style="color:#666"&gt;*&lt;/span&gt; (&lt;span style="color:#666"&gt;1.0&lt;/span&gt; &lt;span style="color:#666"&gt;-&lt;/span&gt; fabs(fmod(hue &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#666"&gt;60.0&lt;/span&gt;, &lt;span style="color:#666"&gt;2.0&lt;/span&gt;) &lt;span style="color:#666"&gt;-&lt;/span&gt; &lt;span style="color:#666"&gt;1.0&lt;/span&gt;));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#0b0;font-weight:bold"&gt;double&lt;/span&gt; m &lt;span style="color:#666"&gt;=&lt;/span&gt; v &lt;span style="color:#666"&gt;-&lt;/span&gt; c;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#0b0;font-weight:bold"&gt;double&lt;/span&gt; r &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;, g &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;, b &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;if&lt;/span&gt; (hue &lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color:#666"&gt;60&lt;/span&gt;) { r &lt;span style="color:#666"&gt;=&lt;/span&gt; c; g &lt;span style="color:#666"&gt;=&lt;/span&gt; x; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;else&lt;/span&gt; &lt;span style="color:#00a000"&gt;if&lt;/span&gt; (hue &lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color:#666"&gt;120&lt;/span&gt;) { r &lt;span style="color:#666"&gt;=&lt;/span&gt; x; g &lt;span style="color:#666"&gt;=&lt;/span&gt; c; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;else&lt;/span&gt; &lt;span style="color:#00a000"&gt;if&lt;/span&gt; (hue &lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color:#666"&gt;180&lt;/span&gt;) { g &lt;span style="color:#666"&gt;=&lt;/span&gt; c; b &lt;span style="color:#666"&gt;=&lt;/span&gt; x; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;else&lt;/span&gt; &lt;span style="color:#00a000"&gt;if&lt;/span&gt; (hue &lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color:#666"&gt;240&lt;/span&gt;) { g &lt;span style="color:#666"&gt;=&lt;/span&gt; x; b &lt;span style="color:#666"&gt;=&lt;/span&gt; c; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;else&lt;/span&gt; &lt;span style="color:#00a000"&gt;if&lt;/span&gt; (hue &lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color:#666"&gt;300&lt;/span&gt;) { r &lt;span style="color:#666"&gt;=&lt;/span&gt; x; b &lt;span style="color:#666"&gt;=&lt;/span&gt; c; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;else&lt;/span&gt; { r &lt;span style="color:#666"&gt;=&lt;/span&gt; c; b &lt;span style="color:#666"&gt;=&lt;/span&gt; x; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; colors.push_back({
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;static_cast&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;uint8_t&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;((r &lt;span style="color:#666"&gt;+&lt;/span&gt; m) &lt;span style="color:#666"&gt;*&lt;/span&gt; &lt;span style="color:#666"&gt;255&lt;/span&gt;),
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;static_cast&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;uint8_t&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;((g &lt;span style="color:#666"&gt;+&lt;/span&gt; m) &lt;span style="color:#666"&gt;*&lt;/span&gt; &lt;span style="color:#666"&gt;255&lt;/span&gt;),
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;static_cast&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;uint8_t&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;((b &lt;span style="color:#666"&gt;+&lt;/span&gt; m) &lt;span style="color:#666"&gt;*&lt;/span&gt; &lt;span style="color:#666"&gt;255&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; });
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; colors;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;void&lt;/span&gt; &lt;span style="color:#00a000"&gt;pclViewer&lt;/span&gt;(pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;ConstPtr cloud)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;visualization&lt;span style="color:#666"&gt;::&lt;/span&gt;PCLVisualizer viewer;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; viewer.setBackgroundColor(&lt;span style="color:#666"&gt;0.05&lt;/span&gt;, &lt;span style="color:#666"&gt;0.05&lt;/span&gt;, &lt;span style="color:#666"&gt;0.05&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;visualization&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloudColorHandlerCustom&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; color(cloud, &lt;span style="color:#666"&gt;0&lt;/span&gt;, &lt;span style="color:#666"&gt;255&lt;/span&gt;, &lt;span style="color:#666"&gt;0&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; viewer.addPointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;(cloud, color, &lt;span style="color:#b44"&gt;&amp;#34;cloud&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;while&lt;/span&gt; (&lt;span style="color:#666"&gt;!&lt;/span&gt;viewer.wasStopped()) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; viewer.spinOnce(&lt;span style="color:#666"&gt;100&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;void&lt;/span&gt; &lt;span style="color:#00a000"&gt;pclViewer&lt;/span&gt;(pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZI&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;ConstPtr cloud)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;visualization&lt;span style="color:#666"&gt;::&lt;/span&gt;PCLVisualizer viewer;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; viewer.setBackgroundColor(&lt;span style="color:#666"&gt;0.05&lt;/span&gt;, &lt;span style="color:#666"&gt;0.05&lt;/span&gt;, &lt;span style="color:#666"&gt;0.05&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;visualization&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloudColorHandlerCustom&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZI&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; color(cloud, &lt;span style="color:#666"&gt;0&lt;/span&gt;, &lt;span style="color:#666"&gt;255&lt;/span&gt;, &lt;span style="color:#666"&gt;0&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; viewer.addPointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZI&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;(cloud, color, &lt;span style="color:#b44"&gt;&amp;#34;cloud&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;while&lt;/span&gt; (&lt;span style="color:#666"&gt;!&lt;/span&gt;viewer.wasStopped()) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; viewer.spinOnce(&lt;span style="color:#666"&gt;100&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;void&lt;/span&gt; &lt;span style="color:#00a000"&gt;pclViewer&lt;/span&gt;(pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZRGB&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;ConstPtr cloud)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;visualization&lt;span style="color:#666"&gt;::&lt;/span&gt;PCLVisualizer viewer;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; viewer.setBackgroundColor(&lt;span style="color:#666"&gt;0.05&lt;/span&gt;, &lt;span style="color:#666"&gt;0.05&lt;/span&gt;, &lt;span style="color:#666"&gt;0.05&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;visualization&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloudColorHandlerRGBField&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZRGB&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; rgb(cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; viewer.addPointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZRGB&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;(cloud, rgb, &lt;span style="color:#b44"&gt;&amp;#34;cloud&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;while&lt;/span&gt; (&lt;span style="color:#666"&gt;!&lt;/span&gt;viewer.wasStopped()) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; viewer.spinOnce(&lt;span style="color:#666"&gt;100&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;template&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;typename&lt;/span&gt; PointT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;void&lt;/span&gt; pclViewCluster(&lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;shared_ptr&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointT&lt;span style="color:#666"&gt;&amp;gt;&amp;gt;&amp;amp;&lt;/span&gt; cloud, &lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;vector&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointIndices&lt;span style="color:#666"&gt;&amp;gt;&amp;amp;&lt;/span&gt; clusters)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; cloud_colored &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;make_shared&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZRGB&lt;span style="color:#666"&gt;&amp;gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cloud_colored&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;reserve(cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;size());
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; colors &lt;span style="color:#666"&gt;=&lt;/span&gt; generateColors(clusters.size());
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (size_t i &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;; i &lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt; clusters.size(); i&lt;span style="color:#666"&gt;++&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; cluster &lt;span style="color:#666"&gt;=&lt;/span&gt; clusters[i];
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; color &lt;span style="color:#666"&gt;=&lt;/span&gt; colors[i];
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (&lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; &lt;span style="color:#a0a000"&gt;idx&lt;/span&gt; : cluster.indices) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; p &lt;span style="color:#666"&gt;=&lt;/span&gt; (&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud)[idx];
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cloud_colored&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;emplace_back(p.x, p.y, p.z, color.r, color.g, color.b);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pclViewer(cloud_colored);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="查找"&gt;查找&lt;/h2&gt;
&lt;p&gt;点云处理中查找主要包括两方面：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;指定一个点，查找它最近的 k 个邻居&lt;/li&gt;
&lt;li&gt;指定一个点，查找在指定半径范围内的邻居&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="kdtree"&gt;KdTree&lt;/h3&gt;
&lt;p&gt;KdTree 是一个数据结构，能够高效的查找 K 近邻或半径邻居&lt;/p&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-13"&gt;13&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-14"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-14"&gt;14&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-15"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-15"&gt;15&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-16"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-16"&gt;16&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-17"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-17"&gt;17&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-18"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-18"&gt;18&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-19"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-19"&gt;19&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-20"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-20"&gt;20&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-21"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-21"&gt;21&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-22"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-22"&gt;22&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-23"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-23"&gt;23&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-24"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-24"&gt;24&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-25"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-25"&gt;25&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-26"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-26"&gt;26&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-27"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-27"&gt;27&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-28"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-28"&gt;28&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-29"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-29"&gt;29&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-30"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-30"&gt;30&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-31"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-31"&gt;31&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-32"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-32"&gt;32&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-33"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-33"&gt;33&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-34"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-34"&gt;34&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-35"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-35"&gt;35&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-36"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-36"&gt;36&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-37"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-37"&gt;37&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-38"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-38"&gt;38&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-39"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-39"&gt;39&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-40"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-40"&gt;40&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-41"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-41"&gt;41&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-42"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-42"&gt;42&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-43"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-43"&gt;43&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-44"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-44"&gt;44&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-45"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-45"&gt;45&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-46"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-46"&gt;46&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-47"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-47"&gt;47&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-48"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-48"&gt;48&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-49"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-49"&gt;49&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-50"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-50"&gt;50&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-51"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-51"&gt;51&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-52"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-52"&gt;52&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-53"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-53"&gt;53&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-54"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-54"&gt;54&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-55"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-55"&gt;55&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-56"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-56"&gt;56&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-57"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-57"&gt;57&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-58"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-58"&gt;58&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-6-59"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-6-59"&gt;59&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_cloud.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/kdtree/kdtree_flann.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;format&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;vector&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;ctime&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; &lt;span style="color:#00a000"&gt;main&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; cloud &lt;span style="color:#666"&gt;=&lt;/span&gt; genPointCloud(&lt;span style="color:#666"&gt;1000&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;KdTreeFLANN&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; kdtree;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; kdtree.setInputCloud(cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ searchPoint;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; searchPoint.x &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1024.0f&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt; rand() &lt;span style="color:#666"&gt;/&lt;/span&gt; (RAND_MAX &lt;span style="color:#666"&gt;+&lt;/span&gt; &lt;span style="color:#666"&gt;1.0f&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; searchPoint.y &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1024.0f&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt; rand() &lt;span style="color:#666"&gt;/&lt;/span&gt; (RAND_MAX &lt;span style="color:#666"&gt;+&lt;/span&gt; &lt;span style="color:#666"&gt;1.0f&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; searchPoint.z &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1024.0f&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt; rand() &lt;span style="color:#666"&gt;/&lt;/span&gt; (RAND_MAX &lt;span style="color:#666"&gt;+&lt;/span&gt; &lt;span style="color:#666"&gt;1.0f&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// k 近邻搜索
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; K &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;5&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;vector&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; pointIdxKNNSearch(K);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;vector&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;float&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; pointKNNSquaredDistance(K);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;format(&lt;span style="color:#b44"&gt;&amp;#34;K nearest neighbor search at ({}, {}, {}) with K: {}&lt;/span&gt;&lt;span style="color:#b62;font-weight:bold"&gt;\n&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; searchPoint.x, searchPoint.y, searchPoint.z, K);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;if&lt;/span&gt; (kdtree.nearestKSearch(searchPoint, K, pointIdxKNNSearch, pointKNNSquaredDistance) &lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (size_t i &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;; i &lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt; pointIdxKNNSearch.size(); i&lt;span style="color:#666"&gt;++&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; p &lt;span style="color:#666"&gt;=&lt;/span&gt; (&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud)[pointIdxKNNSearch[i]];
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;format(&lt;span style="color:#b44"&gt;&amp;#34;find {}: point: ({}, {}, {}), squared distance: {}&amp;#34;&lt;/span&gt;, i, p.x,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p.y, p.z, pointKNNSquaredDistance[i])
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 半径搜索
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;vector&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; pointIdxRadiusSearch;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;vector&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;float&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; pointRadiusSquaredDistance;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#0b0;font-weight:bold"&gt;float&lt;/span&gt; radius &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;256.0f&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt; rand() &lt;span style="color:#666"&gt;/&lt;/span&gt; (RAND_MAX &lt;span style="color:#666"&gt;+&lt;/span&gt; &lt;span style="color:#666"&gt;1.0f&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;format(&lt;span style="color:#b44"&gt;&amp;#34;Neighbors within radius search at ({}, {}, {}) with radius: {}&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; searchPoint.x, searchPoint.y, searchPoint.z, radius)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;if&lt;/span&gt; (kdtree.radiusSearch(searchPoint, radius, pointIdxRadiusSearch, pointRadiusSquaredDistance) &lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (size_t i &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;; i &lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt; pointIdxRadiusSearch.size(); i&lt;span style="color:#666"&gt;++&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; p &lt;span style="color:#666"&gt;=&lt;/span&gt; (&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud)[pointIdxRadiusSearch[i]];
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;format(&lt;span style="color:#b44"&gt;&amp;#34;find {}: point: ({}, {}, {}), squared distance: {}&amp;#34;&lt;/span&gt;, i, p.x,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p.y, p.z, pointRadiusSquaredDistance[i])
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-7-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-7-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-7-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-7-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-7-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-7-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-7-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-7-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-7-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-7-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-7-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-7-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-7-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-7-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-7-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-7-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-7-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-7-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-7-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-7-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-7-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-7-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-7-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-7-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-7-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-7-13"&gt;13&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;K nearest neighbor search at (843.17914, 724.95197, 942.59766) with K: 5
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;find 0: point: (838.75775, 707.2718, 923.97406), squared distance: 678.9756
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;find 1: point: (860.5885, 722.6938, 968.37213), squared distance: 972.5088
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;find 2: point: (867.26166, 656.1342, 939.431), squared distance: 5325.878
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;find 3: point: (891.3544, 763.66846, 989.54846), squared distance: 6024.198
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;find 4: point: (896.51337, 697.6261, 893.1407), squared distance: 6037.2354
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Neighbors within radius search at (843.17914, 724.95197, 942.59766) with radius: 98.56139
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;find 0: point: (838.75775, 707.2718, 923.97406), squared distance: 678.9756
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;find 1: point: (860.5885, 722.6938, 968.37213), squared distance: 972.5088
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;find 2: point: (867.26166, 656.1342, 939.431), squared distance: 5325.878
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;find 3: point: (891.3544, 763.66846, 989.54846), squared distance: 6024.198
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;find 4: point: (896.51337, 697.6261, 893.1407), squared distance: 6037.2354
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;find 5: point: (908.95496, 783.8818, 909.6123), squared distance: 8887.214&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="特征"&gt;特征&lt;/h2&gt;
&lt;p&gt;特征是通过周围一圈领域点算出来，描述局部表面形状，集合结构等&lt;/p&gt;
&lt;h3 id="积分图法向量估计"&gt;积分图法向量估计&lt;/h3&gt;
&lt;p&gt;积分图即预处理后的累加和图，任意矩形区域的和都可以用 4 次查表算出&lt;/p&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-13"&gt;13&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-14"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-14"&gt;14&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-15"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-15"&gt;15&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-16"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-16"&gt;16&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-17"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-17"&gt;17&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-18"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-18"&gt;18&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-19"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-19"&gt;19&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-20"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-20"&gt;20&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-21"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-21"&gt;21&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-22"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-22"&gt;22&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-23"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-23"&gt;23&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-24"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-24"&gt;24&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-25"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-25"&gt;25&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-26"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-26"&gt;26&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-27"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-27"&gt;27&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-28"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-28"&gt;28&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-29"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-29"&gt;29&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-30"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-30"&gt;30&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-31"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-31"&gt;31&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-32"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-32"&gt;32&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-33"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-33"&gt;33&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-34"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-34"&gt;34&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-35"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-35"&gt;35&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-36"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-36"&gt;36&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-37"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-37"&gt;37&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-38"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-38"&gt;38&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-39"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-39"&gt;39&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-8-40"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-8-40"&gt;40&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;format&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/io/pcd_io.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/features/integral_image_normal.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/visualization/pcl_visualizer.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;filesystem&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;using&lt;/span&gt; PointT &lt;span style="color:#666"&gt;=&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; &lt;span style="color:#00a000"&gt;main&lt;/span&gt;(&lt;span style="color:#b44"&gt;[[maybe_unused]] int argc, [[maybe_unused]]&lt;/span&gt; &lt;span style="color:#0b0;font-weight:bold"&gt;char&lt;/span&gt;&lt;span style="color:#666"&gt;*&lt;/span&gt; argv[]) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path home(std&lt;span style="color:#666"&gt;::&lt;/span&gt;getenv(&lt;span style="color:#b44"&gt;&amp;#34;HOME&amp;#34;&lt;/span&gt;));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; pcd_file &lt;span style="color:#666"&gt;=&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path(home &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Documents/Dataset/table_scene_mug_stereo_textured.pcd&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointT&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr cloud(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PCDReader reader;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reader.read(pcd_file.c_str(), &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;format(&lt;span style="color:#b44"&gt;&amp;#34;PointCloud has {} data points.&lt;/span&gt;&lt;span style="color:#b62;font-weight:bold"&gt;\n&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;&lt;/span&gt;, cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;size());
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 估计法向量
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;Normal&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr normals(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;Normal&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;IntegralImageNormalEstimation&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointT, pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;Normal&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; ne;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ne.setNormalEstimationMethod(ne.AVERAGE_3D_GRADIENT);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ne.setMaxDepthChangeFactor(&lt;span style="color:#666"&gt;0.02f&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ne.setNormalSmoothingSize(&lt;span style="color:#666"&gt;10.0f&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ne.setInputCloud(cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ne.compute(&lt;span style="color:#666"&gt;*&lt;/span&gt;normals);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;visualization&lt;span style="color:#666"&gt;::&lt;/span&gt;PCLVisualizer viewer(&lt;span style="color:#b44"&gt;&amp;#34; PCL Viewer&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; viewer.setBackgroundColor(&lt;span style="color:#666"&gt;0.0&lt;/span&gt;, &lt;span style="color:#666"&gt;0.0&lt;/span&gt;, &lt;span style="color:#666"&gt;0.5&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; viewer.addPointCloudNormals&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointT, pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;Normal&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;(cloud, normals);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;while&lt;/span&gt; (&lt;span style="color:#666"&gt;!&lt;/span&gt;viewer.wasStopped()) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; viewer.spinOnce();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-9-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-9-1"&gt;1&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PointCloud has 307200 data points.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="滤波"&gt;滤波&lt;/h2&gt;
&lt;p&gt;PCL 中的滤波指保留点云中满足指定条件的点&lt;/p&gt;
&lt;h3 id="直通滤波--passthrough-filter"&gt;直通滤波(PassThrough filter)&lt;/h3&gt;
&lt;p&gt;直通滤波的条件是指定维度值的范围，比如保留 z 轴在 [0, 1] 区间内的点&lt;/p&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-13"&gt;13&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-14"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-14"&gt;14&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-15"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-15"&gt;15&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-16"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-16"&gt;16&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-17"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-17"&gt;17&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-18"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-18"&gt;18&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-19"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-19"&gt;19&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-20"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-20"&gt;20&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-21"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-21"&gt;21&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-22"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-22"&gt;22&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-23"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-23"&gt;23&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-24"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-24"&gt;24&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-25"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-25"&gt;25&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-26"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-26"&gt;26&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-27"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-27"&gt;27&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-28"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-28"&gt;28&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-29"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-29"&gt;29&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-10-30"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-10-30"&gt;30&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;format&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/filters/passthrough.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; &lt;span style="color:#00a000"&gt;main&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; cloud &lt;span style="color:#666"&gt;=&lt;/span&gt; genPointCloud(&lt;span style="color:#666"&gt;5&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; filtered_cloud &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;make_shared&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;emplace_back(&lt;span style="color:#666"&gt;0.0&lt;/span&gt;, &lt;span style="color:#666"&gt;0.0&lt;/span&gt;, &lt;span style="color:#666"&gt;0.0&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;emplace_back(&lt;span style="color:#666"&gt;0.0&lt;/span&gt;, &lt;span style="color:#666"&gt;0.0&lt;/span&gt;, &lt;span style="color:#666"&gt;1.0&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Cloud before filtering: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (&lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; &lt;span style="color:#a0a000"&gt;point&lt;/span&gt; : &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;format(&lt;span style="color:#b44"&gt;&amp;#34;({}, {}, {})&lt;/span&gt;&lt;span style="color:#b62;font-weight:bold"&gt;\n&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;&lt;/span&gt;, point.x, point.y, point.z);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PassThrough&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; pass; &lt;span style="color:#080;font-style:italic"&gt;// 创建直通滤波
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pass.setInputCloud(cloud); &lt;span style="color:#080;font-style:italic"&gt;// 设置输入点云
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pass.setFilterFieldName(&lt;span style="color:#b44"&gt;&amp;#34;z&amp;#34;&lt;/span&gt;); &lt;span style="color:#080;font-style:italic"&gt;// 设置需要过滤的维度
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pass.setFilterLimits(&lt;span style="color:#666"&gt;0.0&lt;/span&gt;, &lt;span style="color:#666"&gt;1.0&lt;/span&gt;); &lt;span style="color:#080;font-style:italic"&gt;// 设置范围
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// pass.setNegative(true); // 反向过滤
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pass.filter(&lt;span style="color:#666"&gt;*&lt;/span&gt;filtered_cloud); &lt;span style="color:#080;font-style:italic"&gt;// 开始过滤并设置到输出点云
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Cloud after filtering: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (&lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; &lt;span style="color:#a0a000"&gt;point&lt;/span&gt; : &lt;span style="color:#666"&gt;*&lt;/span&gt;filtered_cloud) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;format(&lt;span style="color:#b44"&gt;&amp;#34;({}, {}, {})&lt;/span&gt;&lt;span style="color:#b62;font-weight:bold"&gt;\n&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;&lt;/span&gt;, point.x, point.y, point.z);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-11-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-11-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-11-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-11-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-11-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-11-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-11-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-11-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-11-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-11-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-11-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-11-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-11-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-11-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-11-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-11-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-11-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-11-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-11-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-11-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-11-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-11-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-11-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-11-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-11-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-11-13"&gt;13&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Cloud before filtering:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(0.35222197, -0.15188313, -0.106395245)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(-0.3974061, -0.4731059, 0.29260206)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(-0.7318983, 0.6671047, 0.44130373)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(-0.7347655, 0.8545809, -0.036173344)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(-0.46070004, -0.2774682, -0.9167619)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(0, 0, 0)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(0, 0, 1)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Cloud after filtering:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(-0.3974061, -0.4731059, 0.29260206)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(-0.7318983, 0.6671047, 0.44130373)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(0, 0, 0)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;(0, 0, 1)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="体素滤波--voxelgrid-filter"&gt;体素滤波(VoxelGrid filter)&lt;/h3&gt;
&lt;p&gt;体素就是三维空间中的一个立方体，体素滤波就是用一个个立方体去装填整个点云，然后每个立方体里只保留一个点，从而精简点云数量。&lt;/p&gt;
&lt;p&gt;对于每个包含点的立方体，PCL 会计算其中所有点的重心，并用这个重心来代表这个立方体里原本所有的点，这种下采样算法能够保留点云几何形状和结构。&lt;/p&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-13"&gt;13&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-14"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-14"&gt;14&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-15"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-15"&gt;15&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-16"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-16"&gt;16&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-17"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-17"&gt;17&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-18"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-18"&gt;18&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-19"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-19"&gt;19&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-20"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-20"&gt;20&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-21"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-21"&gt;21&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-22"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-22"&gt;22&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-23"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-23"&gt;23&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-24"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-24"&gt;24&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-25"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-25"&gt;25&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-26"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-26"&gt;26&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-27"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-27"&gt;27&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-28"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-28"&gt;28&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-29"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-29"&gt;29&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-30"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-30"&gt;30&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-31"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-31"&gt;31&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-32"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-32"&gt;32&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-33"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-33"&gt;33&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-12-34"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-12-34"&gt;34&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;filesystem&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/io/pcd_io.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/filters/voxel_grid.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; &lt;span style="color:#00a000"&gt;main&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; cloud &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;make_shared&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PCLPointCloud2&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; filtered_cloud &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;make_shared&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PCLPointCloud2&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path home(std&lt;span style="color:#666"&gt;::&lt;/span&gt;getenv(&lt;span style="color:#b44"&gt;&amp;#34;HOME&amp;#34;&lt;/span&gt;));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// Fill in the cloud data
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PCDReader reader;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reader.read(std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path( home &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Documents/Dataset/table_scene_lms400.pcd&amp;#34;&lt;/span&gt;).c_str(),
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;PointCloud before filtering: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;width &lt;span style="color:#666"&gt;*&lt;/span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;height &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; data points (&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;getFieldsList(&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud) &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;).&amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// Create the filtering object
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;VoxelGrid&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PCLPointCloud2&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; sor;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sor.setInputCloud(cloud); &lt;span style="color:#080;font-style:italic"&gt;// 设置输入点云
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sor.setLeafSize(&lt;span style="color:#666"&gt;0.01f&lt;/span&gt;, &lt;span style="color:#666"&gt;0.01f&lt;/span&gt;, &lt;span style="color:#666"&gt;0.01f&lt;/span&gt;); &lt;span style="color:#080;font-style:italic"&gt;// 设置立方体大小 0.1 * 0.1 * 0.1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sor.filter(&lt;span style="color:#666"&gt;*&lt;/span&gt;filtered_cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;PointCloud after filtering: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; filtered_cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;width &lt;span style="color:#666"&gt;*&lt;/span&gt; filtered_cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;height
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; data points (&amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;getFieldsList(&lt;span style="color:#666"&gt;*&lt;/span&gt;filtered_cloud) &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;).&amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PCDWriter writer;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; writer.write(std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path(home &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Documents/Dataset/table_scene_lms400_downsampled.pcd&amp;#34;&lt;/span&gt;),
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt;filtered_cloud, Eigen&lt;span style="color:#666"&gt;::&lt;/span&gt;Vector4f&lt;span style="color:#666"&gt;::&lt;/span&gt;Zero(), Eigen&lt;span style="color:#666"&gt;::&lt;/span&gt;Quaternionf&lt;span style="color:#666"&gt;::&lt;/span&gt;Identity(), &lt;span style="color:#a2f"&gt;false&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; (&lt;span style="color:#666"&gt;0&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-13-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-13-1"&gt;1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-13-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-13-2"&gt;2&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PointCloud before filtering: 460400 data points (x y z intensity distance sid).
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PointCloud after filtering: 41049 data points (x y z intensity distance sid).&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="统计离群点移除滤波"&gt;统计离群点移除滤波&lt;/h3&gt;
&lt;p&gt;激光扫描生成的点云数据集通常具有变化的点密度。此外，测量误差会引入稀疏的离群点，进一步破坏数据质量。&lt;/p&gt;
&lt;p&gt;统计离群点滤波算法：对于每个点，计算它到所有领域点的平均距离，如果平均距离落在全局距离均值和标准差所定义的区间外，则视为离群点&lt;/p&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-13"&gt;13&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-14"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-14"&gt;14&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-15"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-15"&gt;15&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-16"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-16"&gt;16&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-17"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-17"&gt;17&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-18"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-18"&gt;18&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-19"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-19"&gt;19&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-20"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-20"&gt;20&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-21"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-21"&gt;21&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-22"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-22"&gt;22&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-23"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-23"&gt;23&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-24"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-24"&gt;24&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-25"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-25"&gt;25&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-26"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-26"&gt;26&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-27"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-27"&gt;27&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-28"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-28"&gt;28&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-29"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-29"&gt;29&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-30"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-30"&gt;30&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-31"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-31"&gt;31&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-32"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-32"&gt;32&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-33"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-33"&gt;33&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-14-34"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-14-34"&gt;34&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;filesystem&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/io/pcd_io.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/filters/statistical_outlier_removal.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; &lt;span style="color:#00a000"&gt;main&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr cloud (&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr cloud_filtered (&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path home(std&lt;span style="color:#666"&gt;::&lt;/span&gt;getenv(&lt;span style="color:#b44"&gt;&amp;#34;HOME&amp;#34;&lt;/span&gt;));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path dataset &lt;span style="color:#666"&gt;=&lt;/span&gt; home &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Documents/Dataset&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// Fill in the cloud data
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PCDReader reader;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reader.read(std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path(dataset &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;table_scene_lms400.pcd&amp;#34;&lt;/span&gt;).c_str(),&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;PointCloud before filtering: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;width &lt;span style="color:#666"&gt;*&lt;/span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;height &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; data points (&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;getFieldsList(&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud) &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;).&amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;StatisticalOutlierRemoval&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; sor;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sor.setInputCloud(cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sor.setMeanK(&lt;span style="color:#666"&gt;50&lt;/span&gt;); &lt;span style="color:#080;font-style:italic"&gt;// 领域中点的数量
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sor.setStddevMulThresh(&lt;span style="color:#666"&gt;1.0&lt;/span&gt;); &lt;span style="color:#080;font-style:italic"&gt;// 标准差的阈值，大于 1.0 的点被认为是离群点
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sor.filter(&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_filtered);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PCDWriter writer;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; writer.write&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;(std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path(dataset &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;table_scene_lms400_inliers.pcd&amp;#34;&lt;/span&gt;).c_str(), &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_filtered, &lt;span style="color:#a2f"&gt;false&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sor.setNegative(&lt;span style="color:#a2f"&gt;true&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sor.filter(&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_filtered);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; writer.write&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;(std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path(dataset &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;table_scene_lms400_outliers.pcd&amp;#34;&lt;/span&gt;).c_str(), &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_filtered,&lt;span style="color:#a2f"&gt;false&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-15-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-15-1"&gt;1&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PointCloud before filtering: 460400 data points (x y z).&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="条件滤波"&gt;条件滤波&lt;/h3&gt;
&lt;p&gt;条件滤波即按照给定条件过滤点云中的点，只是给定的这个条件是用 PCL 中的结构&lt;/p&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-13"&gt;13&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-14"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-14"&gt;14&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-15"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-15"&gt;15&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-16"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-16"&gt;16&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-17"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-17"&gt;17&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-18"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-18"&gt;18&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-19"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-19"&gt;19&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-20"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-20"&gt;20&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-21"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-21"&gt;21&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-22"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-22"&gt;22&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-23"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-23"&gt;23&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-24"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-24"&gt;24&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-25"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-25"&gt;25&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-26"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-26"&gt;26&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-27"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-27"&gt;27&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-28"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-28"&gt;28&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-29"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-29"&gt;29&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-30"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-30"&gt;30&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-31"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-31"&gt;31&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-32"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-32"&gt;32&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-33"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-33"&gt;33&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-34"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-34"&gt;34&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-35"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-35"&gt;35&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-36"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-36"&gt;36&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-37"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-37"&gt;37&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-38"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-38"&gt;38&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-39"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-39"&gt;39&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-40"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-40"&gt;40&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-41"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-41"&gt;41&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-42"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-42"&gt;42&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-43"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-43"&gt;43&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-44"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-44"&gt;44&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-45"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-45"&gt;45&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-16-46"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-16-46"&gt;46&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/filters/conditional_removal.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; &lt;span style="color:#00a000"&gt;main&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr cloud(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr cloud_filtered(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// Fill in the cloud data
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;width &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;5&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;height &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;resize(cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;width &lt;span style="color:#666"&gt;*&lt;/span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;height);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (&lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; &lt;span style="color:#a0a000"&gt;point&lt;/span&gt; : &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; point.x &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1024&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt; rand() &lt;span style="color:#666"&gt;/&lt;/span&gt; (RAND_MAX &lt;span style="color:#666"&gt;+&lt;/span&gt; &lt;span style="color:#666"&gt;1.0f&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; point.y &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1024&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt; rand() &lt;span style="color:#666"&gt;/&lt;/span&gt; (RAND_MAX &lt;span style="color:#666"&gt;+&lt;/span&gt; &lt;span style="color:#666"&gt;1.0f&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; point.z &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1024&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt; rand() &lt;span style="color:#666"&gt;/&lt;/span&gt; (RAND_MAX &lt;span style="color:#666"&gt;+&lt;/span&gt; &lt;span style="color:#666"&gt;1.0f&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 构建 and 条件
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;ConditionAnd&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr range_cond(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;ConditionAnd&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;());
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 添加一个比较条件，z &amp;gt; 0
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; range_cond&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;addComparison(pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;FieldComparison&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;ConstPtr(
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;FieldComparison&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;(&lt;span style="color:#b44"&gt;&amp;#34;z&amp;#34;&lt;/span&gt;, pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;ComparisonOps&lt;span style="color:#666"&gt;::&lt;/span&gt;GT, &lt;span style="color:#666"&gt;0.0&lt;/span&gt;)));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 添加一个比较条件，z &amp;lt; 0.8
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; range_cond&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;addComparison(pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;FieldComparison&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;ConstPtr(
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;FieldComparison&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;(&lt;span style="color:#b44"&gt;&amp;#34;z&amp;#34;&lt;/span&gt;, pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;ComparisonOps&lt;span style="color:#666"&gt;::&lt;/span&gt;LT, &lt;span style="color:#666"&gt;0.8&lt;/span&gt;)));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 构建滤波
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;ConditionalRemoval&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; cond_rem;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cond_rem.setCondition(range_cond);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cond_rem.setInputCloud(cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cond_rem.setKeepOrganized(&lt;span style="color:#a2f"&gt;true&lt;/span&gt;); &lt;span style="color:#080;font-style:italic"&gt;// 保持点云的数据格式，即将不符合条件的点设置为 NAN ，点云总数不变
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cond_rem.filter(&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_filtered);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Cloud before filtering: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (&lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; &lt;span style="color:#a0a000"&gt;point&lt;/span&gt; : &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.x &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.y &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.z &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// display pointcloud after filtering
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Cloud after filtering: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (&lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; &lt;span style="color:#a0a000"&gt;point&lt;/span&gt; : &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_filtered)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.x &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.y &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.z &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-17-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-17-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-17-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-17-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-17-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-17-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-17-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-17-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-17-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-17-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-17-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-17-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-17-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-17-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-17-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-17-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-17-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-17-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-17-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-17-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-17-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-17-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-17-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-17-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Cloud before filtering:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 0.352222 -0.151883 -0.106395
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.397406 -0.473106 0.292602
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.731898 0.667105 0.441304
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.734766 0.854581 -0.0361733
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.4607 -0.277468 -0.916762
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Cloud after filtering:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; nan nan nan
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.397406 -0.473106 0.292602
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.731898 0.667105 0.441304
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; nan nan nan
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; nan nan nan&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="半径离群点移除滤波"&gt;半径离群点移除滤波&lt;/h3&gt;
&lt;p&gt;指定半径和邻居数量，对于一个点，如果指定半径内其它点数量小于指定的邻居数量，则视为离群点&lt;/p&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-13"&gt;13&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-14"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-14"&gt;14&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-15"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-15"&gt;15&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-16"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-16"&gt;16&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-17"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-17"&gt;17&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-18"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-18"&gt;18&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-19"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-19"&gt;19&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-20"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-20"&gt;20&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-21"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-21"&gt;21&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-22"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-22"&gt;22&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-23"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-23"&gt;23&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-24"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-24"&gt;24&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-25"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-25"&gt;25&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-26"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-26"&gt;26&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-27"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-27"&gt;27&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-28"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-28"&gt;28&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-29"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-29"&gt;29&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-30"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-30"&gt;30&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-31"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-31"&gt;31&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-32"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-32"&gt;32&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-33"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-33"&gt;33&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-34"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-34"&gt;34&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-35"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-35"&gt;35&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-18-36"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-18-36"&gt;36&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/filters/radius_outlier_removal.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; &lt;span style="color:#00a000"&gt;main&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr cloud(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr cloud_filtered(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// Fill in the cloud data
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;width &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;5&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;height &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;resize(cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;width &lt;span style="color:#666"&gt;*&lt;/span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;height);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (&lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; &lt;span style="color:#a0a000"&gt;point&lt;/span&gt; : &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; point.x &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1024&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt; rand() &lt;span style="color:#666"&gt;/&lt;/span&gt; (RAND_MAX &lt;span style="color:#666"&gt;+&lt;/span&gt; &lt;span style="color:#666"&gt;1.0f&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; point.y &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1024&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt; rand() &lt;span style="color:#666"&gt;/&lt;/span&gt; (RAND_MAX &lt;span style="color:#666"&gt;+&lt;/span&gt; &lt;span style="color:#666"&gt;1.0f&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; point.z &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1024&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt; rand() &lt;span style="color:#666"&gt;/&lt;/span&gt; (RAND_MAX &lt;span style="color:#666"&gt;+&lt;/span&gt; &lt;span style="color:#666"&gt;1.0f&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;RadiusOutlierRemoval&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; outrem;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; outrem.setInputCloud(cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; outrem.setRadiusSearch(&lt;span style="color:#666"&gt;1.0&lt;/span&gt;); &lt;span style="color:#080;font-style:italic"&gt;// 设置半径
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; outrem.setMinNeighborsInRadius(&lt;span style="color:#666"&gt;1&lt;/span&gt;); &lt;span style="color:#080;font-style:italic"&gt;// 设置邻居数量
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; outrem.setKeepOrganized(&lt;span style="color:#a2f"&gt;true&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; outrem.filter(&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_filtered);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Cloud before filtering: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (&lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; &lt;span style="color:#a0a000"&gt;point&lt;/span&gt; : &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.x &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.y &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.z &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// display pointcloud after filtering
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Cloud after filtering: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (&lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; &lt;span style="color:#a0a000"&gt;point&lt;/span&gt; : &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_filtered)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.x &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.y &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.z &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-19-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-19-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-19-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-19-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-19-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-19-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-19-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-19-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-19-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-19-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-19-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-19-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-19-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-19-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-19-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-19-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-19-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-19-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-19-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-19-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-19-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-19-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-19-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-19-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Cloud before filtering:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 0.352222 -0.151883 -0.106395
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.397406 -0.473106 0.292602
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.731898 0.667105 0.441304
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.734766 0.854581 -0.0361733
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.4607 -0.277468 -0.916762
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Cloud after filtering:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 0.352222 -0.151883 -0.106395
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.397406 -0.473106 0.292602
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.731898 0.667105 0.441304
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.734766 0.854581 -0.0361733
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; nan nan nan&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="投影滤波"&gt;投影滤波&lt;/h3&gt;
&lt;p&gt;将点投影到指定的参数模型上，比如将点投影到平面上，对应的参数模型为： &lt;code&gt;aX + bY + cZ +d = 0&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;支持的投影模型及系数：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;宏定义&lt;/th&gt;
&lt;th&gt;模型&lt;/th&gt;
&lt;th&gt;系数个数&lt;/th&gt;
&lt;th&gt;系数含义简述&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;SACMODEL_PLANE&lt;/td&gt;
&lt;td&gt;平面&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;[a,b,c,d] 平面方程 ax+by+cz+d=0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SACMODEL_LINE&lt;/td&gt;
&lt;td&gt;3D 直线&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;基准点 + 方向向量&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SACMODEL_CIRCLE2D&lt;/td&gt;
&lt;td&gt;2D 平面圆&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;圆心(cx,cy) + 半径 r&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SACMODEL_CIRCLE3D&lt;/td&gt;
&lt;td&gt;3D 空间圆&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;圆心+平面法向+半径&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SACMODEL_SPHERE&lt;/td&gt;
&lt;td&gt;球体&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;球心(cx,cy,cz) + 半径 r&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SACMODEL_CYLINDER&lt;/td&gt;
&lt;td&gt;圆柱体&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;轴线基准点+轴线方向+底面半径&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SACMODEL_CONE&lt;/td&gt;
&lt;td&gt;圆锥体&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;顶点+轴线方向+锥角&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-13"&gt;13&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-14"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-14"&gt;14&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-15"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-15"&gt;15&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-16"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-16"&gt;16&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-17"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-17"&gt;17&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-18"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-18"&gt;18&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-19"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-19"&gt;19&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-20"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-20"&gt;20&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-21"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-21"&gt;21&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-22"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-22"&gt;22&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-23"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-23"&gt;23&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-24"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-24"&gt;24&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-25"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-25"&gt;25&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-26"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-26"&gt;26&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-27"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-27"&gt;27&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-28"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-28"&gt;28&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-29"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-29"&gt;29&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-30"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-30"&gt;30&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-31"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-31"&gt;31&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-32"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-32"&gt;32&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-33"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-33"&gt;33&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-34"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-34"&gt;34&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-35"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-35"&gt;35&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-36"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-36"&gt;36&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-37"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-37"&gt;37&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-38"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-38"&gt;38&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-39"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-39"&gt;39&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-40"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-40"&gt;40&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-41"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-41"&gt;41&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-42"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-42"&gt;42&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-20-43"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-20-43"&gt;43&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_cloud.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/ModelCoefficients.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/filters/project_inliers.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; &lt;span style="color:#00a000"&gt;main&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr cloud(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr cloud_projected(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// Fill in the cloud data
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;width &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;5&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;height &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;points.resize(cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;width &lt;span style="color:#666"&gt;*&lt;/span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;height);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (&lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; &lt;span style="color:#a0a000"&gt;point&lt;/span&gt; : &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; point.x &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1024&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt; rand() &lt;span style="color:#666"&gt;/&lt;/span&gt; (RAND_MAX &lt;span style="color:#666"&gt;+&lt;/span&gt; &lt;span style="color:#666"&gt;1.0f&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; point.y &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1024&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt; rand() &lt;span style="color:#666"&gt;/&lt;/span&gt; (RAND_MAX &lt;span style="color:#666"&gt;+&lt;/span&gt; &lt;span style="color:#666"&gt;1.0f&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; point.z &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1024&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt; rand() &lt;span style="color:#666"&gt;/&lt;/span&gt; (RAND_MAX &lt;span style="color:#666"&gt;+&lt;/span&gt; &lt;span style="color:#666"&gt;1.0f&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Cloud before projection: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (&lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; &lt;span style="color:#a0a000"&gt;point&lt;/span&gt; : &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.x &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.y &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.z &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 设置投影系数
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;ModelCoefficients&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr coefficients(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;ModelCoefficients);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; coefficients&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;values.resize(&lt;span style="color:#666"&gt;4&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; coefficients&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;values[&lt;span style="color:#666"&gt;0&lt;/span&gt;] &lt;span style="color:#666"&gt;=&lt;/span&gt; coefficients&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;values[&lt;span style="color:#666"&gt;1&lt;/span&gt;] &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;; &lt;span style="color:#080;font-style:italic"&gt;// x = y = 0;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; coefficients&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;values[&lt;span style="color:#666"&gt;2&lt;/span&gt;] &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1.0&lt;/span&gt;; &lt;span style="color:#080;font-style:italic"&gt;// z = 1.0;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; coefficients&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;values[&lt;span style="color:#666"&gt;3&lt;/span&gt;] &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;ProjectInliers&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; proj;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; proj.setModelType(pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;SACMODEL_PLANE);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; proj.setInputCloud(cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; proj.setModelCoefficients(coefficients);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; proj.filter(&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_projected);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Cloud after projection: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (&lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; &lt;span style="color:#a0a000"&gt;point&lt;/span&gt; : &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_projected)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.x &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.y &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.z &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-21-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-21-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-21-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-21-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-21-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-21-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-21-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-21-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-21-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-21-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-21-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-21-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-21-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-21-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-21-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-21-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-21-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-21-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-21-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-21-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-21-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-21-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-21-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-21-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Cloud before projection:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 0.352222 -0.151883 -0.106395
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.397406 -0.473106 0.292602
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.731898 0.667105 0.441304
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.734766 0.854581 -0.0361733
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.4607 -0.277468 -0.916762
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Cloud after projection:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 0.352222 -0.151883 0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.397406 -0.473106 0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.731898 0.667105 0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.734766 0.854581 0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.4607 -0.277468 0&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="索引提取滤波"&gt;索引提取滤波&lt;/h3&gt;
&lt;p&gt;即指定点的索引，将点从点云中提取出来&lt;/p&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-13"&gt;13&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-14"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-14"&gt;14&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-15"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-15"&gt;15&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-16"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-16"&gt;16&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-17"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-17"&gt;17&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-18"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-18"&gt;18&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-19"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-19"&gt;19&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-20"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-20"&gt;20&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-21"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-21"&gt;21&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-22"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-22"&gt;22&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-23"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-23"&gt;23&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-24"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-24"&gt;24&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-25"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-25"&gt;25&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-26"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-26"&gt;26&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-27"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-27"&gt;27&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-28"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-28"&gt;28&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-29"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-29"&gt;29&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-30"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-30"&gt;30&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-31"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-31"&gt;31&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-32"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-32"&gt;32&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-33"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-33"&gt;33&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-34"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-34"&gt;34&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-35"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-35"&gt;35&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-36"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-36"&gt;36&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-37"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-37"&gt;37&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-38"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-38"&gt;38&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-39"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-39"&gt;39&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-40"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-40"&gt;40&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-22-41"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-22-41"&gt;41&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_cloud.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/filters/extract_indices.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; &lt;span style="color:#00a000"&gt;main&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr cloud(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr cloud_filtered(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// Fill in the cloud data
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;width &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;5&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;height &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;points.resize(cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;width &lt;span style="color:#666"&gt;*&lt;/span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;height);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (&lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; &lt;span style="color:#a0a000"&gt;point&lt;/span&gt; : &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; point.x &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1024&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt; rand() &lt;span style="color:#666"&gt;/&lt;/span&gt; (RAND_MAX &lt;span style="color:#666"&gt;+&lt;/span&gt; &lt;span style="color:#666"&gt;1.0f&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; point.y &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1024&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt; rand() &lt;span style="color:#666"&gt;/&lt;/span&gt; (RAND_MAX &lt;span style="color:#666"&gt;+&lt;/span&gt; &lt;span style="color:#666"&gt;1.0f&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; point.z &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1024&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt; rand() &lt;span style="color:#666"&gt;/&lt;/span&gt; (RAND_MAX &lt;span style="color:#666"&gt;+&lt;/span&gt; &lt;span style="color:#666"&gt;1.0f&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Cloud before projection: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (&lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; &lt;span style="color:#a0a000"&gt;point&lt;/span&gt; : &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.x &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.y &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.z &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 指定点的索引，这里指定 1， 3， 实际上一般通过模板匹配或其它方式获得
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointIndices&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr indices(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointIndices());
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; indices&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;indices.push_back(&lt;span style="color:#666"&gt;1&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; indices&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;indices.push_back(&lt;span style="color:#666"&gt;3&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;ExtractIndices&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; extract;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; extract.setInputCloud(cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; extract.setIndices(indices);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; extract.setNegative(&lt;span style="color:#a2f"&gt;false&lt;/span&gt;); &lt;span style="color:#080;font-style:italic"&gt;// false 表示保留索引点，true 表示去掉索引点
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; extract.setKeepOrganized(&lt;span style="color:#a2f"&gt;true&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; extract.filter(&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_filtered);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Cloud after projection: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (&lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; &lt;span style="color:#a0a000"&gt;point&lt;/span&gt; : &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_filtered)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.x &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.y &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.z &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-23-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-23-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-23-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-23-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-23-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-23-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-23-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-23-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-23-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-23-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-23-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-23-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-23-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-23-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-23-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-23-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-23-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-23-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-23-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-23-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-23-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-23-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-23-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-23-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Cloud before projection:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 0.352222 -0.151883 -0.106395
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.397406 -0.473106 0.292602
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.731898 0.667105 0.441304
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.734766 0.854581 -0.0361733
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.4607 -0.277468 -0.916762
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Cloud after projection:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; nan nan nan
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.397406 -0.473106 0.292602
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; nan nan nan
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.734766 0.854581 -0.0361733
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; nan nan nan&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="分割"&gt;分割&lt;/h2&gt;
&lt;p&gt;点云分割即找出点云中的指定模型&lt;/p&gt;
&lt;h3 id="平面模型分割"&gt;平面模型分割&lt;/h3&gt;
&lt;p&gt;平面模型分割即在点云中找出一个平面&lt;/p&gt;
&lt;p&gt;常用的是 SAC_RANSAC 算法：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;随机猜 3 个点算平面&lt;/li&gt;
&lt;li&gt;数有多少点贴合这个平面&lt;/li&gt;
&lt;li&gt;重复 N 次，留下贴合点最多的那个平面&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;实际工程中可以用来剔除地面，剔除墙面，分离背景和障碍物等&lt;/p&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-13"&gt;13&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-14"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-14"&gt;14&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-15"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-15"&gt;15&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-16"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-16"&gt;16&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-17"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-17"&gt;17&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-18"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-18"&gt;18&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-19"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-19"&gt;19&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-20"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-20"&gt;20&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-21"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-21"&gt;21&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-22"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-22"&gt;22&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-23"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-23"&gt;23&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-24"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-24"&gt;24&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-25"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-25"&gt;25&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-26"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-26"&gt;26&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-27"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-27"&gt;27&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-28"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-28"&gt;28&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-29"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-29"&gt;29&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-30"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-30"&gt;30&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-31"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-31"&gt;31&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-32"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-32"&gt;32&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-33"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-33"&gt;33&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-34"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-34"&gt;34&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-35"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-35"&gt;35&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-36"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-36"&gt;36&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-37"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-37"&gt;37&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-38"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-38"&gt;38&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-39"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-39"&gt;39&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-40"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-40"&gt;40&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-41"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-41"&gt;41&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-42"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-42"&gt;42&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-43"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-43"&gt;43&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-44"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-44"&gt;44&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-45"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-45"&gt;45&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-46"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-46"&gt;46&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-47"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-47"&gt;47&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-48"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-48"&gt;48&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-49"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-49"&gt;49&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-50"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-50"&gt;50&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-51"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-51"&gt;51&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-52"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-52"&gt;52&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-53"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-53"&gt;53&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-54"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-54"&gt;54&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-55"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-55"&gt;55&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-56"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-56"&gt;56&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-57"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-57"&gt;57&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-24-58"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-24-58"&gt;58&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_cloud.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/filters/extract_indices.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/sample_consensus/method_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/sample_consensus/model_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/segmentation/sac_segmentation.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; &lt;span style="color:#00a000"&gt;main&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr cloud(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr cloud_filtered(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// Fill in the cloud data
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;width &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;15&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;height &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;points.resize(cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;width &lt;span style="color:#666"&gt;*&lt;/span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;height);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (&lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; &lt;span style="color:#a0a000"&gt;point&lt;/span&gt; : &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; point.x &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1024&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt; rand() &lt;span style="color:#666"&gt;/&lt;/span&gt; (RAND_MAX &lt;span style="color:#666"&gt;+&lt;/span&gt; &lt;span style="color:#666"&gt;1.0f&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; point.y &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1024&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt; rand() &lt;span style="color:#666"&gt;/&lt;/span&gt; (RAND_MAX &lt;span style="color:#666"&gt;+&lt;/span&gt; &lt;span style="color:#666"&gt;1.0f&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; point.z &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1024&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt; rand() &lt;span style="color:#666"&gt;/&lt;/span&gt; (RAND_MAX &lt;span style="color:#666"&gt;+&lt;/span&gt; &lt;span style="color:#666"&gt;1.0f&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 设置离群点
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud)[&lt;span style="color:#666"&gt;0&lt;/span&gt;].z &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;2.0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud)[&lt;span style="color:#666"&gt;3&lt;/span&gt;].z &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;-&lt;/span&gt;&lt;span style="color:#666"&gt;2.0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud)[&lt;span style="color:#666"&gt;6&lt;/span&gt;].z &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;4.0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Cloud before projection: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (&lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; &lt;span style="color:#a0a000"&gt;point&lt;/span&gt; : &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.x &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.y &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; point.z &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;ModelCoefficients&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr coefficients(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;ModelCoefficients);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointIndices&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr inliers(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointIndices);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;SACSegmentation&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; seg;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setOptimizeCoefficients(&lt;span style="color:#a2f"&gt;true&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setModelType(pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;SACMODEL_PLANE);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setMethodType(pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;SAC_RANSAC);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setDistanceThreshold(&lt;span style="color:#666"&gt;0.01&lt;/span&gt;); &lt;span style="color:#080;font-style:italic"&gt;// 距离系数，点到平面距离小于 0.01 为内点
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setInputCloud(cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.segment(&lt;span style="color:#666"&gt;*&lt;/span&gt;inliers, &lt;span style="color:#666"&gt;*&lt;/span&gt;coefficients);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;if&lt;/span&gt; (inliers&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;indices.size() &lt;span style="color:#666"&gt;==&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Could not estimate a planar model for the given dataset.&amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#666"&gt;-&lt;/span&gt;&lt;span style="color:#666"&gt;1&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Model coefficients: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; coefficients&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;values[&lt;span style="color:#666"&gt;0&lt;/span&gt;] &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; coefficients&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;values[&lt;span style="color:#666"&gt;1&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; coefficients&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;values[&lt;span style="color:#666"&gt;2&lt;/span&gt;] &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; coefficients&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;values[&lt;span style="color:#666"&gt;3&lt;/span&gt;] &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Model inliers: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; inliers&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;indices.size() &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (&lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; &lt;span style="color:#a0a000"&gt;idx&lt;/span&gt; : inliers&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;indices)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; idx &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;points[idx].x &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;points[idx].y &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; &amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;points[idx].z &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-25-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-25-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-25-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-25-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-25-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-25-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-25-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-25-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-25-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-25-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-25-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-25-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-25-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-25-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-25-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-25-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-25-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-25-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-25-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-25-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-25-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-25-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-25-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-25-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-25-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-25-13"&gt;13&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-25-14"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-25-14"&gt;14&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-25-15"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-25-15"&gt;15&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-25-16"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-25-16"&gt;16&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-25-17"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-25-17"&gt;17&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-25-18"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-25-18"&gt;18&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-25-19"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-25-19"&gt;19&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-25-20"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-25-20"&gt;20&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-25-21"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-25-21"&gt;21&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-25-22"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-25-22"&gt;22&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Cloud before projection:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 0.352222 -0.151883 2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.397406 -0.473106 0.292602
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.731898 0.667105 0.441304
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.734766 0.854581 -2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.4607 -0.277468 -0.916762
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 0.183749 0.968809 0.512055
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.998983 -0.463871 4
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 0.716053 0.525135 -0.523004
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 0.439387 0.56706 0.905417
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.579787 0.898706 -0.504929
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.757228 -0.749072 -0.656812
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.863624 0.853522 0.870082
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.571022 0.121624 -0.462813
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.129718 -0.613142 0.391768
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -0.165891 0.926158 0.1143
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Model coefficients: 0.910654 -0.197082 -0.363135 0.375378
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Model inliers: 4
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;0 0.352222 -0.151883 2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;1 -0.397406 -0.473106 0.292602
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;12 -0.571022 0.121624 -0.462813
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;14 -0.165891 0.926158 0.1143&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="圆柱模型分割"&gt;圆柱模型分割&lt;/h3&gt;
&lt;p&gt;即在点云中找出一个圆柱体&lt;/p&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-10"&gt; 10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-11"&gt; 11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-12"&gt; 12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-13"&gt; 13&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-14"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-14"&gt; 14&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-15"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-15"&gt; 15&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-16"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-16"&gt; 16&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-17"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-17"&gt; 17&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-18"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-18"&gt; 18&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-19"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-19"&gt; 19&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-20"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-20"&gt; 20&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-21"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-21"&gt; 21&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-22"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-22"&gt; 22&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-23"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-23"&gt; 23&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-24"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-24"&gt; 24&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-25"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-25"&gt; 25&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-26"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-26"&gt; 26&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-27"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-27"&gt; 27&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-28"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-28"&gt; 28&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-29"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-29"&gt; 29&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-30"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-30"&gt; 30&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-31"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-31"&gt; 31&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-32"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-32"&gt; 32&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-33"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-33"&gt; 33&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-34"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-34"&gt; 34&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-35"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-35"&gt; 35&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-36"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-36"&gt; 36&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-37"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-37"&gt; 37&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-38"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-38"&gt; 38&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-39"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-39"&gt; 39&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-40"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-40"&gt; 40&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-41"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-41"&gt; 41&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-42"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-42"&gt; 42&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-43"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-43"&gt; 43&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-44"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-44"&gt; 44&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-45"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-45"&gt; 45&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-46"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-46"&gt; 46&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-47"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-47"&gt; 47&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-48"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-48"&gt; 48&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-49"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-49"&gt; 49&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-50"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-50"&gt; 50&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-51"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-51"&gt; 51&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-52"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-52"&gt; 52&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-53"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-53"&gt; 53&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-54"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-54"&gt; 54&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-55"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-55"&gt; 55&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-56"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-56"&gt; 56&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-57"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-57"&gt; 57&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-58"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-58"&gt; 58&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-59"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-59"&gt; 59&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-60"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-60"&gt; 60&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-61"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-61"&gt; 61&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-62"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-62"&gt; 62&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-63"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-63"&gt; 63&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-64"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-64"&gt; 64&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-65"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-65"&gt; 65&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-66"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-66"&gt; 66&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-67"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-67"&gt; 67&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-68"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-68"&gt; 68&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-69"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-69"&gt; 69&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-70"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-70"&gt; 70&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-71"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-71"&gt; 71&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-72"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-72"&gt; 72&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-73"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-73"&gt; 73&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-74"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-74"&gt; 74&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-75"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-75"&gt; 75&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-76"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-76"&gt; 76&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-77"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-77"&gt; 77&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-78"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-78"&gt; 78&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-79"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-79"&gt; 79&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-80"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-80"&gt; 80&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-81"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-81"&gt; 81&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-82"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-82"&gt; 82&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-83"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-83"&gt; 83&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-84"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-84"&gt; 84&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-85"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-85"&gt; 85&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-86"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-86"&gt; 86&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-87"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-87"&gt; 87&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-88"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-88"&gt; 88&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-89"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-89"&gt; 89&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-90"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-90"&gt; 90&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-91"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-91"&gt; 91&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-92"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-92"&gt; 92&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-93"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-93"&gt; 93&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-94"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-94"&gt; 94&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-95"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-95"&gt; 95&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-96"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-96"&gt; 96&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-97"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-97"&gt; 97&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-98"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-98"&gt; 98&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-99"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-99"&gt; 99&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-100"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-100"&gt;100&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-101"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-101"&gt;101&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-102"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-102"&gt;102&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-26-103"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-26-103"&gt;103&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;format&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;filesystem&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/io/pcd_io.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_cloud.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/features/normal_3d.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/filters/extract_indices.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/filters/passthrough.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/sample_consensus/method_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/sample_consensus/model_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/segmentation/sac_segmentation.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/visualization/pcl_visualizer.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;using&lt;/span&gt; PointT &lt;span style="color:#666"&gt;=&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; &lt;span style="color:#00a000"&gt;main&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path home(std&lt;span style="color:#666"&gt;::&lt;/span&gt;getenv(&lt;span style="color:#b44"&gt;&amp;#34;HOME&amp;#34;&lt;/span&gt;));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; pcd_file &lt;span style="color:#666"&gt;=&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path(home &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Documents/Dataset/table_scene_mug_stereo_textured.pcd&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointT&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr cloud(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PCDReader reader;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reader.read(pcd_file.c_str(), &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;format(&lt;span style="color:#b44"&gt;&amp;#34;PointCloud has {} data points.&lt;/span&gt;&lt;span style="color:#b62;font-weight:bold"&gt;\n&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;&lt;/span&gt;, cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;size());
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pclViewer(cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 移除 NaN 和场景外的点
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointT&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr cloud_filtered(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PassThrough&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; pass;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pass.setInputCloud(cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pass.setFilterFieldName(&lt;span style="color:#b44"&gt;&amp;#34;z&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pass.setFilterLimits(&lt;span style="color:#666"&gt;0&lt;/span&gt;, &lt;span style="color:#666"&gt;1.5&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pass.filter(&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_filtered);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;format(&lt;span style="color:#b44"&gt;&amp;#34;PointCloud has {} data points after passthrough filter.&lt;/span&gt;&lt;span style="color:#b62;font-weight:bold"&gt;\n&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;&lt;/span&gt;, cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;size());
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pclViewer(cloud_filtered);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 估计点的法向量
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;Normal&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr cloud_normals(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;Normal&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;NormalEstimation&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointT, pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;Normal&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; ne;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;search&lt;span style="color:#666"&gt;::&lt;/span&gt;KdTree&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointT&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr tree(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;search&lt;span style="color:#666"&gt;::&lt;/span&gt;KdTree&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ne.setSearchMethod(tree);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ne.setInputCloud(cloud_filtered);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ne.setKSearch(&lt;span style="color:#666"&gt;50&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ne.compute(&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_normals);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;ModelCoefficients&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr coefficients_plane (&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;ModelCoefficients), coefficients_cylinder (&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;ModelCoefficients);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointIndices&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr inliers_plane (&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointIndices), inliers_cylinder (&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointIndices);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;ExtractIndices&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; extract;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;ExtractIndices&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;Normal&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; extract_normals;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 先进行平面分割
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;SACSegmentationFromNormals&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointT, pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;Normal&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; seg;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setOptimizeCoefficients(&lt;span style="color:#a2f"&gt;true&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setModelType(pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;SACMODEL_NORMAL_PLANE);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setNormalDistanceWeight(&lt;span style="color:#666"&gt;0.1&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setMethodType(pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;SAC_RANSAC);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setMaxIterations(&lt;span style="color:#666"&gt;100&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setDistanceThreshold(&lt;span style="color:#666"&gt;0.03&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setInputCloud(cloud_filtered);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setInputNormals(cloud_normals);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.segment(&lt;span style="color:#666"&gt;*&lt;/span&gt;inliers_plane, &lt;span style="color:#666"&gt;*&lt;/span&gt;coefficients_plane);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Plane coefficients: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt;coefficients_plane &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointT&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr cloud_filtered2 (&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;Normal&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr cloud_normals2 (&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;Normal&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; extract.setInputCloud(cloud_filtered);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; extract.setIndices(inliers_plane);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; extract.setNegative(&lt;span style="color:#a2f"&gt;true&lt;/span&gt;); &lt;span style="color:#080;font-style:italic"&gt;// 剔除平面
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; extract.filter(&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_filtered2);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; extract_normals.setNegative(&lt;span style="color:#a2f"&gt;true&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; extract_normals.setInputCloud(cloud_normals);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; extract_normals.setIndices(inliers_plane);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; extract_normals.filter(&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_normals2);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pclViewer(cloud_filtered2);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 圆柱分割
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setOptimizeCoefficients(&lt;span style="color:#a2f"&gt;true&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setModelType(pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;SACMODEL_CYLINDER);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setMethodType(pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;SAC_RANSAC);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setNormalDistanceWeight(&lt;span style="color:#666"&gt;0.1&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setMaxIterations(&lt;span style="color:#666"&gt;10000&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setDistanceThreshold(&lt;span style="color:#666"&gt;0.05&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setRadiusLimits(&lt;span style="color:#666"&gt;0&lt;/span&gt;, &lt;span style="color:#666"&gt;0.1&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setInputCloud(cloud_filtered2);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setInputNormals(cloud_normals2);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.segment(&lt;span style="color:#666"&gt;*&lt;/span&gt;inliers_cylinder, &lt;span style="color:#666"&gt;*&lt;/span&gt;coefficients_cylinder);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;cylinder coefficients: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt;coefficients_cylinder &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 提取圆柱
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointT&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr cloud_cylinder (&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; ());
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; extract.setInputCloud(cloud_filtered2);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; extract.setIndices(inliers_cylinder);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; extract.setNegative(&lt;span style="color:#a2f"&gt;false&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; extract.filter(&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_cylinder);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pclViewer(cloud_cylinder);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-27-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-27-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-27-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-27-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-27-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-27-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-27-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-27-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-27-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-27-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-27-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-27-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-27-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-27-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-27-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-27-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-27-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-27-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-27-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-27-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-27-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-27-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-27-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-27-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-27-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-27-13"&gt;13&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-27-14"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-27-14"&gt;14&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-27-15"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-27-15"&gt;15&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-27-16"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-27-16"&gt;16&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-27-17"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-27-17"&gt;17&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-27-18"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-27-18"&gt;18&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-27-19"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-27-19"&gt;19&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-27-20"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-27-20"&gt;20&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PointCloud has 307200 data points.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PointCloud has 307200 data points after passthrough filter.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Plane coefficients: header:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;seq: 0 stamp: 0 frame_id:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;values[]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; values[0]: 0.016223
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; values[1]: -0.83761
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; values[2]: -0.546028
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; values[3]: 0.528923
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cylinder coefficients: header:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;seq: 0 stamp: 0 frame_id:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;values[]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; values[0]: 0.0441161
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; values[1]: 0.461857
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; values[2]: 1.02395
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; values[3]: 0.0227775
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; values[4]: -0.836755
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; values[5]: -0.547104
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; values[6]: 0.0387651&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="欧几里得聚类分割"&gt;欧几里得聚类分割&lt;/h3&gt;
&lt;p&gt;算法步骤：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;对点云 P 创建 kdtree&lt;/li&gt;
&lt;li&gt;初始化聚类队列为 C ，初始化空队列 Q&lt;/li&gt;
&lt;li&gt;对于 P 中的每一个点 \(p_i\)，执行下面的步骤：
&lt;ol&gt;
&lt;li&gt;将 \(P_i\) 加到队列 Q 中，对 Q 中的每个点 \(P_i\) 执行下面步骤：
&lt;ol&gt;
&lt;li&gt;查找 \(P_i\) 的邻居点，如果邻居点没有经过处理，将邻居点插入队列 Q 中&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;当 Q 中所有点都处理后，将 Q 中的点作为一类添加到 C 中&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;当所有点处理完成后，算法结束&lt;/li&gt;
&lt;/ol&gt;
&lt;!--listend--&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-13"&gt;13&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-14"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-14"&gt;14&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-15"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-15"&gt;15&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-16"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-16"&gt;16&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-17"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-17"&gt;17&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-18"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-18"&gt;18&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-19"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-19"&gt;19&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-20"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-20"&gt;20&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-21"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-21"&gt;21&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-22"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-22"&gt;22&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-23"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-23"&gt;23&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-24"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-24"&gt;24&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-25"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-25"&gt;25&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-26"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-26"&gt;26&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-27"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-27"&gt;27&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-28"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-28"&gt;28&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-29"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-29"&gt;29&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-30"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-30"&gt;30&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-31"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-31"&gt;31&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-32"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-32"&gt;32&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-33"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-33"&gt;33&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-34"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-34"&gt;34&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-35"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-35"&gt;35&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-36"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-36"&gt;36&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-37"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-37"&gt;37&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-38"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-38"&gt;38&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-39"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-39"&gt;39&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-40"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-40"&gt;40&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-41"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-41"&gt;41&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-42"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-42"&gt;42&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-43"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-43"&gt;43&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-44"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-44"&gt;44&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-45"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-45"&gt;45&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-46"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-46"&gt;46&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-47"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-47"&gt;47&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-48"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-48"&gt;48&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-49"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-49"&gt;49&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-50"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-50"&gt;50&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-51"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-51"&gt;51&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-52"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-52"&gt;52&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-53"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-53"&gt;53&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-54"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-54"&gt;54&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-55"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-55"&gt;55&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-56"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-56"&gt;56&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-57"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-57"&gt;57&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-58"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-58"&gt;58&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-59"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-59"&gt;59&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-60"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-60"&gt;60&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-61"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-61"&gt;61&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-62"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-62"&gt;62&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-63"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-63"&gt;63&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-64"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-64"&gt;64&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-65"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-65"&gt;65&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-66"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-66"&gt;66&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-67"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-67"&gt;67&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-68"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-68"&gt;68&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-69"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-69"&gt;69&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-70"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-70"&gt;70&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-71"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-71"&gt;71&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-72"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-72"&gt;72&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-73"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-73"&gt;73&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-74"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-74"&gt;74&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-75"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-75"&gt;75&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-76"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-76"&gt;76&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-77"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-77"&gt;77&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-78"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-78"&gt;78&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-79"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-79"&gt;79&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-80"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-80"&gt;80&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-81"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-81"&gt;81&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-82"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-82"&gt;82&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-83"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-83"&gt;83&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-84"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-84"&gt;84&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-85"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-85"&gt;85&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-86"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-86"&gt;86&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-87"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-87"&gt;87&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-88"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-88"&gt;88&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-28-89"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-28-89"&gt;89&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;format&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;filesystem&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/ModelCoefficients.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/io/pcd_io.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/filters/extract_indices.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/filters/voxel_grid.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/features/normal_3d.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/search/kdtree.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/sample_consensus/method_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/sample_consensus/model_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/segmentation/sac_segmentation.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/segmentation/extract_clusters.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; &lt;span style="color:#00a000"&gt;main&lt;/span&gt;()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; home &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path(getenv(&lt;span style="color:#b44"&gt;&amp;#34;HOME&amp;#34;&lt;/span&gt;));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; dataset &lt;span style="color:#666"&gt;=&lt;/span&gt; home &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Documents/Dataset/table_scene_lms400.pcd&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; cloud &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;make_shared&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; cloud_f &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;make_shared&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PCDReader reader;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reader.read(dataset.c_str(), &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;PointCloud before filter has: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;size() &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; data points&amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pclViewer(cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 下采样
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;VoxelGrid&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; vg;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; cloud_filtered &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;make_shared&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; vg.setInputCloud(cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; vg.setLeafSize(&lt;span style="color:#666"&gt;0.01f&lt;/span&gt;, &lt;span style="color:#666"&gt;0.01f&lt;/span&gt;, &lt;span style="color:#666"&gt;0.01f&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; vg.filter(&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_filtered);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;PointCloud after filter has: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; cloud_filtered&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;size() &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; data points&amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pclViewer(cloud_filtered);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 平面分割
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;SACSegmentation&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; seg;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; inliers &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;make_shared&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointIndices&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; coefficients &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;make_shared&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;ModelCoefficients&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; cloud_plane &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;make_shared&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setOptimizeCoefficients(&lt;span style="color:#a2f"&gt;true&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setModelType(pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;SACMODEL_PLANE);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setMethodType(pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;SAC_RANSAC);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setMaxIterations(&lt;span style="color:#666"&gt;100&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setDistanceThreshold(&lt;span style="color:#666"&gt;0.02&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; size_t nr_points &lt;span style="color:#666"&gt;=&lt;/span&gt; cloud_filtered&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;size();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;while&lt;/span&gt; (cloud_filtered&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;size() &lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#666"&gt;0.3&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt; nr_points) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setInputCloud(cloud_filtered);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.segment(&lt;span style="color:#666"&gt;*&lt;/span&gt;inliers, &lt;span style="color:#666"&gt;*&lt;/span&gt;coefficients);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;if&lt;/span&gt; (inliers&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;indices.size() &lt;span style="color:#666"&gt;==&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Could not estimate a planar model for the given dataset.&amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;break&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;ExtractIndices&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; extract;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; extract.setInputCloud(cloud_filtered);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; extract.setIndices(inliers);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; extract.setNegative(&lt;span style="color:#a2f"&gt;false&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; extract.filter(&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_plane);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; extract.setNegative(&lt;span style="color:#a2f"&gt;true&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; extract.filter(&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_f);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_filtered &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_f;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;PointCloud after plane seg has: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; cloud_filtered&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;size() &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; data points&amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pclViewer(cloud_filtered);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; tree &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;make_shared&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;search&lt;span style="color:#666"&gt;::&lt;/span&gt;KdTree&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; tree&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;setInputCloud(cloud_filtered);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;vector&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointIndices&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; cluster_indices;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;EuclideanClusterExtraction&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; ec;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ec.setClusterTolerance(&lt;span style="color:#666"&gt;0.02&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ec.setMinClusterSize(&lt;span style="color:#666"&gt;100&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ec.setMaxClusterSize(&lt;span style="color:#666"&gt;25000&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ec.setSearchMethod(tree);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ec.setInputCloud(cloud_filtered);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ec.extract(cluster_indices);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;PointCloud after cluster has: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; cluster_indices.size() &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; clusters&amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pclViewCluster(cloud_filtered, cluster_indices);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-29-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-29-1"&gt;1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-29-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-29-2"&gt;2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-29-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-29-3"&gt;3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-29-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-29-4"&gt;4&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PointCloud before filter has: 460400 data points
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PointCloud after filter has: 41049 data points
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PointCloud after plane seg has: 8071 data points
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PointCloud after cluster has: 5 clusters&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="区域生长分割算法"&gt;区域生长分割算法&lt;/h3&gt;
&lt;p&gt;区域生长算法目的是合并在平滑性约束下足够接近的点，因此该算法的输出是一组聚类，每个聚类是一组被认为属于同一平滑表面的点。&lt;/p&gt;
&lt;p&gt;算法步骤：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;选取的点被加入到名为种子点（seeds）的点集中。&lt;/li&gt;
&lt;li&gt;算法遍历每一个种子点，查找其邻域点。
&lt;ol&gt;
&lt;li&gt;逐一检测每个邻域点：计算该点法向量与当前种子点法向量之间的夹角。若夹角小于阈值，则将该邻域点归入当前区域。&lt;/li&gt;
&lt;li&gt;随后再检测该邻域点的曲率值。若曲率小于阈值，则将该点加入种子点集。&lt;/li&gt;
&lt;li&gt;将当前种子点从种子点集中移除。&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;当种子点集合为空时，生长完成&lt;/p&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-13"&gt;13&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-14"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-14"&gt;14&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-15"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-15"&gt;15&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-16"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-16"&gt;16&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-17"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-17"&gt;17&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-18"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-18"&gt;18&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-19"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-19"&gt;19&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-20"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-20"&gt;20&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-21"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-21"&gt;21&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-22"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-22"&gt;22&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-23"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-23"&gt;23&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-24"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-24"&gt;24&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-25"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-25"&gt;25&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-26"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-26"&gt;26&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-27"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-27"&gt;27&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-28"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-28"&gt;28&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-29"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-29"&gt;29&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-30"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-30"&gt;30&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-31"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-31"&gt;31&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-32"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-32"&gt;32&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-33"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-33"&gt;33&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-34"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-34"&gt;34&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-35"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-35"&gt;35&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-36"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-36"&gt;36&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-37"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-37"&gt;37&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-38"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-38"&gt;38&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-39"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-39"&gt;39&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-40"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-40"&gt;40&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-41"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-41"&gt;41&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-42"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-42"&gt;42&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-43"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-43"&gt;43&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-44"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-44"&gt;44&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-45"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-45"&gt;45&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-46"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-46"&gt;46&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-47"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-47"&gt;47&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-48"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-48"&gt;48&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-49"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-49"&gt;49&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-50"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-50"&gt;50&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-51"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-51"&gt;51&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-52"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-52"&gt;52&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-53"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-53"&gt;53&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-54"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-54"&gt;54&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-55"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-55"&gt;55&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-56"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-56"&gt;56&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-30-57"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-30-57"&gt;57&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;format&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;filesystem&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/visualization/cloud_viewer.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/ModelCoefficients.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/io/pcd_io.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/filters/extract_indices.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/features/normal_3d.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/search/kdtree.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/filters/filter_indices.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/segmentation/region_growing.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; &lt;span style="color:#00a000"&gt;main&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; home &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path(getenv(&lt;span style="color:#b44"&gt;&amp;#34;HOME&amp;#34;&lt;/span&gt;));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; dataset &lt;span style="color:#666"&gt;=&lt;/span&gt; home &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Documents/Dataset/region_growing_tutorial.pcd&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; cloud &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;make_shared&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;if&lt;/span&gt; (pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;io&lt;span style="color:#666"&gt;::&lt;/span&gt;loadPCDFile&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;(dataset.c_str(), &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud) &lt;span style="color:#666"&gt;==&lt;/span&gt; &lt;span style="color:#666"&gt;-&lt;/span&gt;&lt;span style="color:#666"&gt;1&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Cloud reading failed.&amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; (&lt;span style="color:#666"&gt;-&lt;/span&gt;&lt;span style="color:#666"&gt;1&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;PointCloud before filter has: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;size() &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; data points&amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; tree &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;make_shared&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;search&lt;span style="color:#666"&gt;::&lt;/span&gt;KdTree&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; normals &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;make_shared&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;Normal&lt;span style="color:#666"&gt;&amp;gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;NormalEstimation&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ, pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;Normal&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; normal_estimator;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; normal_estimator.setSearchMethod(tree);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; normal_estimator.setInputCloud(cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; normal_estimator.setKSearch(&lt;span style="color:#666"&gt;50&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; normal_estimator.compute(&lt;span style="color:#666"&gt;*&lt;/span&gt;normals);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;IndicesPtr indices(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;vector&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;removeNaNFromPointCloud(&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud, &lt;span style="color:#666"&gt;*&lt;/span&gt;indices);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pclViewer(cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 区域增长
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;RegionGrowing&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ, pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;Normal&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; reg;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reg.setMinClusterSize(&lt;span style="color:#666"&gt;50&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reg.setMaxClusterSize(&lt;span style="color:#666"&gt;1000000&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reg.setSearchMethod(tree);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reg.setNumberOfNeighbours(&lt;span style="color:#666"&gt;30&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reg.setInputCloud(cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reg.setIndices(indices);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reg.setInputNormals(normals);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reg.setSmoothnessThreshold(&lt;span style="color:#666"&gt;3.0&lt;/span&gt; &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#666"&gt;180.0&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt; M_PI);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reg.setCurvatureThreshold(&lt;span style="color:#666"&gt;1.0&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;vector&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointIndices&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; clusters;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reg.extract(clusters);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Number of clusters is equal to &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; clusters.size() &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pclViewCluster(cloud, clusters);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-31-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-31-1"&gt;1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-31-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-31-2"&gt;2&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PointCloud before filter has: 108104 data points
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Number of clusters is equal to 115&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="基于颜色的区域生长分割算法"&gt;基于颜色的区域生长分割算法&lt;/h3&gt;
&lt;p&gt;和区域生长算法的区别：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;使用颜色而不是法线特征&lt;/li&gt;
&lt;li&gt;会合并颜色差异较小的聚类&lt;/li&gt;
&lt;/ol&gt;
&lt;!--listend--&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-13"&gt;13&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-14"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-14"&gt;14&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-15"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-15"&gt;15&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-16"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-16"&gt;16&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-17"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-17"&gt;17&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-18"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-18"&gt;18&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-19"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-19"&gt;19&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-20"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-20"&gt;20&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-21"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-21"&gt;21&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-22"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-22"&gt;22&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-23"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-23"&gt;23&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-24"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-24"&gt;24&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-25"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-25"&gt;25&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-26"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-26"&gt;26&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-27"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-27"&gt;27&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-28"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-28"&gt;28&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-29"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-29"&gt;29&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-30"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-30"&gt;30&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-31"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-31"&gt;31&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-32"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-32"&gt;32&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-33"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-33"&gt;33&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-34"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-34"&gt;34&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-35"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-35"&gt;35&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-36"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-36"&gt;36&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-37"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-37"&gt;37&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-38"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-38"&gt;38&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-39"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-39"&gt;39&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-40"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-40"&gt;40&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-41"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-41"&gt;41&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-42"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-42"&gt;42&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-43"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-43"&gt;43&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-44"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-44"&gt;44&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-45"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-45"&gt;45&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-46"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-46"&gt;46&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-32-47"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-32-47"&gt;47&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;format&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;filesystem&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/visualization/cloud_viewer.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/ModelCoefficients.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/io/pcd_io.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/filters/extract_indices.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/features/normal_3d.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/search/kdtree.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/filters/filter_indices.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/segmentation/region_growing_rgb.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; &lt;span style="color:#00a000"&gt;main&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; home &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path(getenv(&lt;span style="color:#b44"&gt;&amp;#34;HOME&amp;#34;&lt;/span&gt;));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; dataset &lt;span style="color:#666"&gt;=&lt;/span&gt; home &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Documents/Dataset/region_growing_rgb_tutorial.pcd&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; cloud &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;make_shared&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZRGB&lt;span style="color:#666"&gt;&amp;gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;if&lt;/span&gt; (pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;io&lt;span style="color:#666"&gt;::&lt;/span&gt;loadPCDFile&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZRGB&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;(dataset.c_str(), &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud) &lt;span style="color:#666"&gt;==&lt;/span&gt; &lt;span style="color:#666"&gt;-&lt;/span&gt;&lt;span style="color:#666"&gt;1&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Cloud reading failed.&amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; (&lt;span style="color:#666"&gt;-&lt;/span&gt;&lt;span style="color:#666"&gt;1&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;PointCloud before filter has: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;size() &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; data points&amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; tree &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;make_shared&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;search&lt;span style="color:#666"&gt;::&lt;/span&gt;KdTree&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZRGB&lt;span style="color:#666"&gt;&amp;gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;IndicesPtr indices(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;vector&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;removeNaNFromPointCloud(&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud, &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud, &lt;span style="color:#666"&gt;*&lt;/span&gt;indices);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pclViewer(cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 区域增长
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;RegionGrowingRGB&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZRGB&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; reg;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reg.setInputCloud(cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reg.setSearchMethod(tree);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reg.setDistanceThreshold(&lt;span style="color:#666"&gt;10&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reg.setPointColorThreshold(&lt;span style="color:#666"&gt;6&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reg.setRegionColorThreshold(&lt;span style="color:#666"&gt;5&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reg.setMinClusterSize(&lt;span style="color:#666"&gt;600&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;vector&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointIndices&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; clusters;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reg.extract(clusters);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Number of clusters is equal to &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; clusters.size() &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pclViewCluster(cloud, clusters);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-33-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-33-1"&gt;1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-33-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-33-2"&gt;2&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PointCloud before filter has: 307200 data points
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Number of clusters is equal to 25&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="基于最小割的分割算法"&gt;基于最小割的分割算法&lt;/h3&gt;
&lt;p&gt;这个算法对点云进行二值分割。根据对象中心和半径将点云分割为前景（属于对象的点）和背景（不属于对象的点）&lt;/p&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-13"&gt;13&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-14"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-14"&gt;14&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-15"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-15"&gt;15&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-16"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-16"&gt;16&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-17"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-17"&gt;17&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-18"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-18"&gt;18&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-19"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-19"&gt;19&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-20"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-20"&gt;20&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-21"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-21"&gt;21&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-22"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-22"&gt;22&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-23"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-23"&gt;23&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-24"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-24"&gt;24&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-25"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-25"&gt;25&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-26"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-26"&gt;26&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-27"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-27"&gt;27&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-28"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-28"&gt;28&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-29"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-29"&gt;29&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-30"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-30"&gt;30&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-31"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-31"&gt;31&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-32"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-32"&gt;32&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-33"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-33"&gt;33&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-34"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-34"&gt;34&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-35"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-35"&gt;35&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-36"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-36"&gt;36&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-37"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-37"&gt;37&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-38"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-38"&gt;38&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-39"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-39"&gt;39&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-40"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-40"&gt;40&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-41"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-41"&gt;41&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-42"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-42"&gt;42&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-43"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-43"&gt;43&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-44"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-44"&gt;44&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-45"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-45"&gt;45&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-46"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-46"&gt;46&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-47"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-47"&gt;47&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-48"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-48"&gt;48&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-49"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-49"&gt;49&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-50"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-50"&gt;50&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-51"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-51"&gt;51&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-52"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-52"&gt;52&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-53"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-53"&gt;53&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-34-54"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-34-54"&gt;54&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;format&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;filesystem&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/io/pcd_io.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/filters/filter_indices.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/segmentation/min_cut_segmentation.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; &lt;span style="color:#00a000"&gt;main&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; home &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path(getenv(&lt;span style="color:#b44"&gt;&amp;#34;HOME&amp;#34;&lt;/span&gt;));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; dataset &lt;span style="color:#666"&gt;=&lt;/span&gt; home &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Documents/Dataset/min_cut_segmentation_tutorial.pcd&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; cloud &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;make_shared&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;if&lt;/span&gt; (pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;io&lt;span style="color:#666"&gt;::&lt;/span&gt;loadPCDFile&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;(dataset.c_str(), &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud) &lt;span style="color:#666"&gt;==&lt;/span&gt; &lt;span style="color:#666"&gt;-&lt;/span&gt;&lt;span style="color:#666"&gt;1&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Cloud reading failed.&amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; (&lt;span style="color:#666"&gt;-&lt;/span&gt;&lt;span style="color:#666"&gt;1&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;PointCloud before filter has: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;size() &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; data points&amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;IndicesPtr indices(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;vector&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;removeNaNFromPointCloud(&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud, &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud, &lt;span style="color:#666"&gt;*&lt;/span&gt;indices);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pclViewer(cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// min cut 分割
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;MinCutSegmentation&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; seg;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setInputCloud(cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setIndices(indices);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr foreground_points(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;());
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ point;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; point.x &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;68.97&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; point.y &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;-&lt;/span&gt;&lt;span style="color:#666"&gt;18.55&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; point.z &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;0.57&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; foreground_points&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;points.push_back(point);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setForegroundPoints(foreground_points);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setSigma(&lt;span style="color:#666"&gt;0.25&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setRadius(&lt;span style="color:#666"&gt;3.0433856&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setNumberOfNeighbours(&lt;span style="color:#666"&gt;14&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.setSourceWeight(&lt;span style="color:#666"&gt;0.8&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;vector&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointIndices&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; clusters;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; seg.extract(clusters);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Maximum flow is &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; seg.getMaxFlow() &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Number of clusters is equal to &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; clusters.size() &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pclViewCluster(cloud, clusters);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-35-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-35-1"&gt;1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-35-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-35-2"&gt;2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-35-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-35-3"&gt;3&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PointCloud before filter has: 9311 data points
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Maximum flow is 5970.37
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Number of clusters is equal to 2&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="条件欧几里得聚类分割"&gt;条件欧几里得聚类分割&lt;/h3&gt;
&lt;p&gt;支持自定义条件的欧几里德&lt;/p&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-13"&gt;13&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-14"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-14"&gt;14&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-15"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-15"&gt;15&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-16"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-16"&gt;16&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-17"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-17"&gt;17&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-18"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-18"&gt;18&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-19"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-19"&gt;19&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-20"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-20"&gt;20&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-21"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-21"&gt;21&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-22"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-22"&gt;22&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-23"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-23"&gt;23&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-24"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-24"&gt;24&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-25"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-25"&gt;25&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-26"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-26"&gt;26&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-27"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-27"&gt;27&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-28"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-28"&gt;28&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-29"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-29"&gt;29&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-30"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-30"&gt;30&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-31"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-31"&gt;31&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-32"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-32"&gt;32&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-33"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-33"&gt;33&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-34"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-34"&gt;34&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-35"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-35"&gt;35&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-36"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-36"&gt;36&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-37"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-37"&gt;37&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-38"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-38"&gt;38&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-39"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-39"&gt;39&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-40"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-40"&gt;40&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-41"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-41"&gt;41&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-42"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-42"&gt;42&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-43"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-43"&gt;43&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-44"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-44"&gt;44&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-45"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-45"&gt;45&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-46"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-46"&gt;46&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-47"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-47"&gt;47&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-48"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-48"&gt;48&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-49"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-49"&gt;49&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-50"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-50"&gt;50&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-51"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-51"&gt;51&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-52"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-52"&gt;52&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-53"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-53"&gt;53&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-54"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-54"&gt;54&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-55"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-55"&gt;55&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-56"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-56"&gt;56&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-57"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-57"&gt;57&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-58"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-58"&gt;58&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-59"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-59"&gt;59&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-60"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-60"&gt;60&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-61"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-61"&gt;61&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-62"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-62"&gt;62&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-63"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-63"&gt;63&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-64"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-64"&gt;64&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-65"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-65"&gt;65&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-66"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-66"&gt;66&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-67"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-67"&gt;67&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-68"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-68"&gt;68&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-69"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-69"&gt;69&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-70"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-70"&gt;70&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-71"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-71"&gt;71&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-72"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-72"&gt;72&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-73"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-73"&gt;73&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-74"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-74"&gt;74&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-75"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-75"&gt;75&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-76"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-76"&gt;76&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-77"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-77"&gt;77&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-78"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-78"&gt;78&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-79"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-79"&gt;79&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-80"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-80"&gt;80&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-81"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-81"&gt;81&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-82"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-82"&gt;82&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-83"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-83"&gt;83&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-84"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-84"&gt;84&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-85"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-85"&gt;85&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-86"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-86"&gt;86&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-87"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-87"&gt;87&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-88"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-88"&gt;88&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-89"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-89"&gt;89&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-90"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-90"&gt;90&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-91"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-91"&gt;91&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-92"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-92"&gt;92&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-36-93"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-36-93"&gt;93&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;format&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;filesystem&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/io/pcd_io.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/filters/filter_indices.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/filters/voxel_grid.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/features/normal_3d.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/segmentation/conditional_euclidean_clustering.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;bool&lt;/span&gt; &lt;span style="color:#00a000"&gt;enforceNormalOrIntensitySimilarity&lt;/span&gt;(&lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZINormal&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; point_a,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZINormal&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; point_b,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#0b0;font-weight:bold"&gt;float&lt;/span&gt; &lt;span style="color:#080;font-style:italic"&gt;/*squared_distance*/&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Eigen&lt;span style="color:#666"&gt;::&lt;/span&gt;Map&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; Eigen&lt;span style="color:#666"&gt;::&lt;/span&gt;Vector3f&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; point_a_normal &lt;span style="color:#666"&gt;=&lt;/span&gt; point_a.getNormalVector3fMap(),
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; point_b_normal &lt;span style="color:#666"&gt;=&lt;/span&gt; point_b.getNormalVector3fMap();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;if&lt;/span&gt; (std&lt;span style="color:#666"&gt;::&lt;/span&gt;abs(point_a.intensity &lt;span style="color:#666"&gt;-&lt;/span&gt; point_b.intensity) &lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color:#666"&gt;5.0f&lt;/span&gt;) &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; (&lt;span style="color:#a2f"&gt;true&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;if&lt;/span&gt; (std&lt;span style="color:#666"&gt;::&lt;/span&gt;abs(point_a_normal.dot(point_b_normal)) &lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cos(&lt;span style="color:#666"&gt;30.0f&lt;/span&gt; &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#666"&gt;180.0f&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;static_cast&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;float&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;(M_PI)))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; (&lt;span style="color:#a2f"&gt;true&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; (&lt;span style="color:#a2f"&gt;false&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;bool&lt;/span&gt; &lt;span style="color:#00a000"&gt;customRegionGrowing&lt;/span&gt;(&lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZINormal&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; point_a,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZINormal&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; point_b,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#0b0;font-weight:bold"&gt;float&lt;/span&gt; squared_distance) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Eigen&lt;span style="color:#666"&gt;::&lt;/span&gt;Map&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; Eigen&lt;span style="color:#666"&gt;::&lt;/span&gt;Vector3f&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; point_a_normal &lt;span style="color:#666"&gt;=&lt;/span&gt; point_a.getNormalVector3fMap(),
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; point_b_normal &lt;span style="color:#666"&gt;=&lt;/span&gt; point_b.getNormalVector3fMap();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;if&lt;/span&gt; (squared_distance &lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color:#666"&gt;10000&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;if&lt;/span&gt; (std&lt;span style="color:#666"&gt;::&lt;/span&gt;abs(point_a.intensity &lt;span style="color:#666"&gt;-&lt;/span&gt; point_b.intensity) &lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color:#666"&gt;8.0f&lt;/span&gt;) &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; (&lt;span style="color:#a2f"&gt;true&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;if&lt;/span&gt; (std&lt;span style="color:#666"&gt;::&lt;/span&gt;abs(point_a_normal.dot(point_b_normal)) &lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cos(&lt;span style="color:#666"&gt;30.0f&lt;/span&gt; &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#666"&gt;180.0f&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;static_cast&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;float&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;(M_PI)))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; (&lt;span style="color:#a2f"&gt;true&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; } &lt;span style="color:#a2f;font-weight:bold"&gt;else&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;if&lt;/span&gt; (std&lt;span style="color:#666"&gt;::&lt;/span&gt;abs(point_a.intensity &lt;span style="color:#666"&gt;-&lt;/span&gt; point_b.intensity) &lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color:#666"&gt;3.0f&lt;/span&gt;) &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; (&lt;span style="color:#a2f"&gt;true&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; (&lt;span style="color:#a2f"&gt;false&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; &lt;span style="color:#00a000"&gt;main&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; home &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path(getenv(&lt;span style="color:#b44"&gt;&amp;#34;HOME&amp;#34;&lt;/span&gt;));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; dataset &lt;span style="color:#666"&gt;=&lt;/span&gt; home &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Documents/Dataset/Statues_4.pcd&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; cloud &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;make_shared&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZI&lt;span style="color:#666"&gt;&amp;gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; cloud_out &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;make_shared&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZI&lt;span style="color:#666"&gt;&amp;gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;if&lt;/span&gt; (pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;io&lt;span style="color:#666"&gt;::&lt;/span&gt;loadPCDFile&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZI&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;(dataset.c_str(), &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud) &lt;span style="color:#666"&gt;==&lt;/span&gt; &lt;span style="color:#666"&gt;-&lt;/span&gt;&lt;span style="color:#666"&gt;1&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Cloud reading failed.&amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; (&lt;span style="color:#666"&gt;-&lt;/span&gt;&lt;span style="color:#666"&gt;1&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;PointCloud before filter has: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; cloud&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;size() &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; data points&amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;VoxelGrid&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZI&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; vg;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; vg.setInputCloud(cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; vg.setLeafSize(&lt;span style="color:#666"&gt;80.0&lt;/span&gt;, &lt;span style="color:#666"&gt;80.0&lt;/span&gt;, &lt;span style="color:#666"&gt;80.0&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; vg.setDownsampleAllData(&lt;span style="color:#a2f"&gt;true&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; vg.filter(&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_out);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;PointCloud after voxel filter has: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; cloud_out&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;size() &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; data points&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pclViewer(cloud_out);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 法向量估计
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; cloud_with_normals &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;make_shared&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZINormal&lt;span style="color:#666"&gt;&amp;gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; search_tree &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;make_shared&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;search&lt;span style="color:#666"&gt;::&lt;/span&gt;KdTree&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZI&lt;span style="color:#666"&gt;&amp;gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;copyPointCloud(&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_out, &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_with_normals);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;NormalEstimation&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZI, pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZINormal&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; ne;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ne.setInputCloud(cloud_out);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ne.setSearchMethod(search_tree);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ne.setRadiusSearch(&lt;span style="color:#666"&gt;300.0&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ne.compute(&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_with_normals);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 聚类设置
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; clusters &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;make_shared&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;IndicesClusters&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; small_clusters &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;make_shared&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;IndicesClusters&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; large_clusters &lt;span style="color:#666"&gt;=&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;make_shared&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;IndicesClusters&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;ConditionalEuclideanClustering&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZINormal&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; cec(&lt;span style="color:#a2f"&gt;true&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cec.setInputCloud(cloud_with_normals);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cec.setConditionFunction(&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt;customRegionGrowing);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cec.setClusterTolerance(&lt;span style="color:#666"&gt;500.0&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cec.setMinClusterSize(cloud_with_normals&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;size() &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#666"&gt;1000&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cec.setMaxClusterSize(cloud_with_normals&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;size() &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#666"&gt;5&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cec.segment(&lt;span style="color:#666"&gt;*&lt;/span&gt;clusters);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cec.getRemovedClusters(small_clusters, large_clusters);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// pclViewCluster(cloud_out, *clusters);
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pclViewCluster(cloud_out, &lt;span style="color:#666"&gt;*&lt;/span&gt;small_clusters);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pclViewCluster(cloud_out, &lt;span style="color:#666"&gt;*&lt;/span&gt;large_clusters);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-37-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-37-1"&gt;1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-37-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-37-2"&gt;2&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PointCloud before filter has: 19553780 data points
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PointCloud after voxel filter has: 202529 data points&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="配准"&gt;配准&lt;/h2&gt;
&lt;p&gt;点云配准就是把多片散乱的点云，拼到同一个坐标系里，拼成一整块完整的点云。&lt;/p&gt;
&lt;p&gt;配准 A ，B 点云，就是计算 从 A 到 B 所做的旋转 R 和平移 t 变换。&lt;/p&gt;
&lt;p&gt;配准算法流程：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;提取关键点（KeyPoints）&lt;/li&gt;
&lt;li&gt;使用特征描述关键点&lt;/li&gt;
&lt;li&gt;找到相关联的特征，估计变换，有误差&lt;/li&gt;
&lt;li&gt;不断迭代，直到误差达到阈值&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="icp-配准"&gt;ICP 配准&lt;/h3&gt;
&lt;p&gt;迭代最近点算法，通过最小化两片点云之间点的距离估计出变换&lt;/p&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-13"&gt;13&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-14"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-14"&gt;14&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-15"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-15"&gt;15&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-16"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-16"&gt;16&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-17"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-17"&gt;17&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-18"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-18"&gt;18&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-19"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-19"&gt;19&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-20"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-20"&gt;20&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-21"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-21"&gt;21&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-22"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-22"&gt;22&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-23"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-23"&gt;23&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-24"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-24"&gt;24&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-25"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-25"&gt;25&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-26"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-26"&gt;26&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-27"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-27"&gt;27&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-28"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-28"&gt;28&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-38-29"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-38-29"&gt;29&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/io/pcd_io.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/registration/icp.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; &lt;span style="color:#00a000"&gt;main&lt;/span&gt;() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; cloud_in &lt;span style="color:#666"&gt;=&lt;/span&gt; genPointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;(&lt;span style="color:#666"&gt;5&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr cloud_out(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_out &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_in;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (&lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; &lt;span style="color:#a0a000"&gt;p&lt;/span&gt; : &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_out) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p.x &lt;span style="color:#666"&gt;+=&lt;/span&gt; &lt;span style="color:#666"&gt;0.7f&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Transformed &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; cloud_out&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;size() &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34; data points&amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;IterativeClosestPoint&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ, pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; icp;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; icp.setInputSource(cloud_in);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; icp.setInputTarget(cloud_out);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;final&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; icp.align(&lt;span style="color:#a2f;font-weight:bold"&gt;final&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;ICP has &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; (icp.hasConverged() &lt;span style="color:#666"&gt;?&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;coverage&amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;:&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;not coverage&amp;#34;&lt;/span&gt;) &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;, score: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; icp.getFitnessScore() &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;trans formation: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; icp.getFinalTransformation() &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-39-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-39-1"&gt;1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-39-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-39-2"&gt;2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-39-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-39-3"&gt;3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-39-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-39-4"&gt;4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-39-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-39-5"&gt;5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-39-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-39-6"&gt;6&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Transformed 5 data points
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ICP has coverage, score: 1.28697e-13
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;trans formation: 1 3.31085e-07 -1.86265e-07 0.7
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 4.28409e-08 1 2.12342e-07 1.2964e-07
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -1.3411e-07 1.19209e-07 1 1.9297e-07
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 0 0 0 1&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h4 id="增量配准"&gt;增量配准&lt;/h4&gt;
&lt;p&gt;使用 ICP 算法增量配准多片点云&lt;/p&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-10"&gt; 10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-11"&gt; 11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-12"&gt; 12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-13"&gt; 13&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-14"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-14"&gt; 14&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-15"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-15"&gt; 15&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-16"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-16"&gt; 16&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-17"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-17"&gt; 17&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-18"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-18"&gt; 18&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-19"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-19"&gt; 19&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-20"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-20"&gt; 20&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-21"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-21"&gt; 21&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-22"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-22"&gt; 22&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-23"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-23"&gt; 23&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-24"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-24"&gt; 24&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-25"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-25"&gt; 25&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-26"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-26"&gt; 26&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-27"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-27"&gt; 27&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-28"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-28"&gt; 28&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-29"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-29"&gt; 29&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-30"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-30"&gt; 30&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-31"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-31"&gt; 31&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-32"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-32"&gt; 32&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-33"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-33"&gt; 33&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-34"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-34"&gt; 34&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-35"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-35"&gt; 35&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-36"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-36"&gt; 36&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-37"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-37"&gt; 37&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-38"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-38"&gt; 38&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-39"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-39"&gt; 39&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-40"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-40"&gt; 40&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-41"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-41"&gt; 41&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-42"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-42"&gt; 42&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-43"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-43"&gt; 43&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-44"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-44"&gt; 44&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-45"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-45"&gt; 45&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-46"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-46"&gt; 46&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-47"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-47"&gt; 47&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-48"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-48"&gt; 48&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-49"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-49"&gt; 49&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-50"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-50"&gt; 50&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-51"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-51"&gt; 51&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-52"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-52"&gt; 52&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-53"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-53"&gt; 53&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-54"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-54"&gt; 54&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-55"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-55"&gt; 55&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-56"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-56"&gt; 56&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-57"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-57"&gt; 57&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-58"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-58"&gt; 58&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-59"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-59"&gt; 59&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-60"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-60"&gt; 60&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-61"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-61"&gt; 61&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-62"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-62"&gt; 62&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-63"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-63"&gt; 63&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-64"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-64"&gt; 64&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-65"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-65"&gt; 65&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-66"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-66"&gt; 66&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-67"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-67"&gt; 67&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-68"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-68"&gt; 68&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-69"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-69"&gt; 69&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-70"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-70"&gt; 70&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-71"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-71"&gt; 71&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-72"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-72"&gt; 72&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-73"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-73"&gt; 73&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-74"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-74"&gt; 74&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-75"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-75"&gt; 75&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-76"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-76"&gt; 76&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-77"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-77"&gt; 77&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-78"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-78"&gt; 78&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-79"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-79"&gt; 79&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-80"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-80"&gt; 80&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-81"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-81"&gt; 81&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-82"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-82"&gt; 82&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-83"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-83"&gt; 83&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-84"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-84"&gt; 84&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-85"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-85"&gt; 85&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-86"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-86"&gt; 86&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-87"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-87"&gt; 87&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-88"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-88"&gt; 88&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-89"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-89"&gt; 89&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-90"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-90"&gt; 90&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-91"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-91"&gt; 91&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-92"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-92"&gt; 92&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-93"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-93"&gt; 93&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-94"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-94"&gt; 94&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-95"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-95"&gt; 95&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-96"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-96"&gt; 96&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-97"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-97"&gt; 97&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-98"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-98"&gt; 98&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-99"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-99"&gt; 99&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-100"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-100"&gt;100&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-101"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-101"&gt;101&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-102"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-102"&gt;102&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-103"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-103"&gt;103&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-104"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-104"&gt;104&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-105"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-105"&gt;105&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-106"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-106"&gt;106&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-107"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-107"&gt;107&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-108"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-108"&gt;108&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-109"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-109"&gt;109&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-110"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-110"&gt;110&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-111"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-111"&gt;111&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-112"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-112"&gt;112&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-113"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-113"&gt;113&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-114"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-114"&gt;114&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-115"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-115"&gt;115&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-116"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-116"&gt;116&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-117"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-117"&gt;117&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-118"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-118"&gt;118&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-119"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-119"&gt;119&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-120"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-120"&gt;120&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-121"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-121"&gt;121&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-122"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-122"&gt;122&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-123"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-123"&gt;123&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-124"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-124"&gt;124&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-125"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-125"&gt;125&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-126"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-126"&gt;126&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-127"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-127"&gt;127&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-128"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-128"&gt;128&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-129"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-129"&gt;129&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-130"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-130"&gt;130&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-131"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-131"&gt;131&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-132"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-132"&gt;132&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-133"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-133"&gt;133&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-134"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-134"&gt;134&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-135"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-135"&gt;135&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-136"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-136"&gt;136&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-137"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-137"&gt;137&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-138"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-138"&gt;138&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-139"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-139"&gt;139&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-140"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-140"&gt;140&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-141"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-141"&gt;141&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-142"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-142"&gt;142&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-143"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-143"&gt;143&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-144"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-144"&gt;144&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-145"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-145"&gt;145&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-146"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-146"&gt;146&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-147"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-147"&gt;147&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-148"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-148"&gt;148&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-149"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-149"&gt;149&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-150"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-150"&gt;150&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-151"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-151"&gt;151&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-152"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-152"&gt;152&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-153"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-153"&gt;153&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-154"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-154"&gt;154&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-155"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-155"&gt;155&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-156"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-156"&gt;156&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-157"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-157"&gt;157&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-158"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-158"&gt;158&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-159"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-159"&gt;159&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-160"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-160"&gt;160&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-161"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-161"&gt;161&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-162"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-162"&gt;162&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-163"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-163"&gt;163&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-164"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-164"&gt;164&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-165"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-165"&gt;165&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-166"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-166"&gt;166&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-167"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-167"&gt;167&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-168"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-168"&gt;168&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-169"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-169"&gt;169&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-170"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-170"&gt;170&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-171"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-171"&gt;171&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-172"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-172"&gt;172&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-173"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-173"&gt;173&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-174"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-174"&gt;174&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-175"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-175"&gt;175&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-176"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-176"&gt;176&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-177"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-177"&gt;177&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-178"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-178"&gt;178&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-179"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-179"&gt;179&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-180"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-180"&gt;180&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-181"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-181"&gt;181&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-182"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-182"&gt;182&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-183"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-183"&gt;183&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-184"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-184"&gt;184&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-185"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-185"&gt;185&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-186"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-186"&gt;186&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-187"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-187"&gt;187&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-188"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-188"&gt;188&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-189"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-189"&gt;189&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-190"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-190"&gt;190&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-191"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-191"&gt;191&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-192"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-192"&gt;192&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-193"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-193"&gt;193&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-194"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-194"&gt;194&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-195"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-195"&gt;195&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-196"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-196"&gt;196&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-197"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-197"&gt;197&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-198"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-198"&gt;198&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-199"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-199"&gt;199&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-200"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-200"&gt;200&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-201"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-201"&gt;201&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-202"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-202"&gt;202&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-203"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-203"&gt;203&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-204"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-204"&gt;204&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-205"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-205"&gt;205&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-206"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-206"&gt;206&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-207"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-207"&gt;207&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-208"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-208"&gt;208&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-209"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-209"&gt;209&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-210"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-210"&gt;210&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-211"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-211"&gt;211&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-212"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-212"&gt;212&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-213"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-213"&gt;213&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-214"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-214"&gt;214&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-215"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-215"&gt;215&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-216"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-216"&gt;216&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-217"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-217"&gt;217&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-218"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-218"&gt;218&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-219"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-219"&gt;219&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-220"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-220"&gt;220&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-221"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-221"&gt;221&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-222"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-222"&gt;222&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-223"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-223"&gt;223&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-224"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-224"&gt;224&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-225"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-225"&gt;225&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-226"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-226"&gt;226&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-227"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-227"&gt;227&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-228"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-228"&gt;228&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-229"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-229"&gt;229&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-230"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-230"&gt;230&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-231"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-231"&gt;231&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-232"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-232"&gt;232&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-233"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-233"&gt;233&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-234"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-234"&gt;234&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-235"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-235"&gt;235&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-236"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-236"&gt;236&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-237"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-237"&gt;237&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-238"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-238"&gt;238&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-239"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-239"&gt;239&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-240"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-240"&gt;240&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-241"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-241"&gt;241&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-242"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-242"&gt;242&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-243"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-243"&gt;243&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-244"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-244"&gt;244&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-245"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-245"&gt;245&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-246"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-246"&gt;246&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-247"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-247"&gt;247&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-248"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-248"&gt;248&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-249"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-249"&gt;249&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-40-250"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-40-250"&gt;250&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;filesystem&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;format&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/io/pcd_io.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/registration/icp_nl.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_representation.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/visualization/pcl_visualizer.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/filters/filter.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/filters/voxel_grid.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/features/normal_3d.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;using&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;visualization&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloudColorHandlerGenericField;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;using&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;visualization&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloudColorHandlerCustom;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;using&lt;/span&gt; PointT &lt;span style="color:#666"&gt;=&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;using&lt;/span&gt; PointCloud &lt;span style="color:#666"&gt;=&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;using&lt;/span&gt; PointNormalT &lt;span style="color:#666"&gt;=&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointNormal;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;using&lt;/span&gt; PointCloudWithNormals &lt;span style="color:#666"&gt;=&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointNormalT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;static&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;visualization&lt;span style="color:#666"&gt;::&lt;/span&gt;PCLVisualizer&lt;span style="color:#666"&gt;*&lt;/span&gt; p;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;static&lt;/span&gt; &lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; vp_1, vp_2;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;static&lt;/span&gt; &lt;span style="color:#0b0;font-weight:bold"&gt;bool&lt;/span&gt; next_step &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#a2f"&gt;false&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;struct&lt;/span&gt; &lt;span style="color:#00f"&gt;PCD&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; PointCloud&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr cloud;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;string name;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; PCD() &lt;span style="color:#666"&gt;:&lt;/span&gt; cloud(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; PointCloud){};
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;};
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;class&lt;/span&gt; &lt;span style="color:#00f"&gt;MyPointRepresentation&lt;/span&gt; &lt;span style="color:#666"&gt;:&lt;/span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;public&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointRepresentation&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointNormalT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;using&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointRepresentation&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointNormalT&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;nr_dimensions_;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;public&lt;/span&gt;&lt;span style="color:#666"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; MyPointRepresentation() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; nr_dimensions_ &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;4&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#0b0;font-weight:bold"&gt;void&lt;/span&gt; &lt;span style="color:#00a000"&gt;copyToFloatArray&lt;/span&gt;(&lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; PointNormalT&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; p, &lt;span style="color:#0b0;font-weight:bold"&gt;float&lt;/span&gt;&lt;span style="color:#666"&gt;*&lt;/span&gt; out) &lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;override&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; out[&lt;span style="color:#666"&gt;0&lt;/span&gt;] &lt;span style="color:#666"&gt;=&lt;/span&gt; p.x;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; out[&lt;span style="color:#666"&gt;1&lt;/span&gt;] &lt;span style="color:#666"&gt;=&lt;/span&gt; p.y;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; out[&lt;span style="color:#666"&gt;2&lt;/span&gt;] &lt;span style="color:#666"&gt;=&lt;/span&gt; p.z;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; out[&lt;span style="color:#666"&gt;3&lt;/span&gt;] &lt;span style="color:#666"&gt;=&lt;/span&gt; p.curvature;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;};
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;void&lt;/span&gt; &lt;span style="color:#00a000"&gt;showCloudsLeft&lt;/span&gt;(&lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; PointCloud&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr cloud_target, &lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; PointCloud&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr cloud_source) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;removePointCloud(&lt;span style="color:#b44"&gt;&amp;#34;vp1_target&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;removePointCloud(&lt;span style="color:#b44"&gt;&amp;#34;vp1_source&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; PointCloudColorHandlerCustom&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; tgt_h(cloud_target, &lt;span style="color:#666"&gt;0&lt;/span&gt;, &lt;span style="color:#666"&gt;255&lt;/span&gt;, &lt;span style="color:#666"&gt;0&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; PointCloudColorHandlerCustom&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; src_h(cloud_source, &lt;span style="color:#666"&gt;255&lt;/span&gt;, &lt;span style="color:#666"&gt;0&lt;/span&gt;, &lt;span style="color:#666"&gt;0&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;addPointCloud(cloud_target, tgt_h, &lt;span style="color:#b44"&gt;&amp;#34;vp1_target&amp;#34;&lt;/span&gt;, vp_1);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;addPointCloud(cloud_source, src_h, &lt;span style="color:#b44"&gt;&amp;#34;vp1_source&amp;#34;&lt;/span&gt;, vp_1);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; next_step &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#a2f"&gt;false&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;while&lt;/span&gt; (&lt;span style="color:#666"&gt;!&lt;/span&gt;next_step &lt;span style="color:#666"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="color:#666"&gt;!&lt;/span&gt;p&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;wasStopped())
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;spinOnce(&lt;span style="color:#666"&gt;100&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;void&lt;/span&gt; &lt;span style="color:#00a000"&gt;showCloudsRight&lt;/span&gt;(&lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; PointCloudWithNormals&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr cloud_target,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; PointCloudWithNormals&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr cloud_source) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;removePointCloud(&lt;span style="color:#b44"&gt;&amp;#34;source&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;removePointCloud(&lt;span style="color:#b44"&gt;&amp;#34;target&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; PointCloudColorHandlerGenericField&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointNormalT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; tgt_h(cloud_target, &lt;span style="color:#b44"&gt;&amp;#34;curvature&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;if&lt;/span&gt; (&lt;span style="color:#666"&gt;!&lt;/span&gt;tgt_h.isCapable()) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cerr &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Can not create curvature color handler&amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; PointCloudColorHandlerGenericField&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointNormalT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; src_h(cloud_source, &lt;span style="color:#b44"&gt;&amp;#34;curvature&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;if&lt;/span&gt; (&lt;span style="color:#666"&gt;!&lt;/span&gt;src_h.isCapable()) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cerr &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Can not create curvature color handler&amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;addPointCloud(cloud_target, tgt_h, &lt;span style="color:#b44"&gt;&amp;#34;target&amp;#34;&lt;/span&gt;, vp_2);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;addPointCloud(cloud_source, src_h, &lt;span style="color:#b44"&gt;&amp;#34;source&amp;#34;&lt;/span&gt;, vp_2);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;spinOnce();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;std&lt;span style="color:#666"&gt;::&lt;/span&gt;vector&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PCD&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; loadData() {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;vector&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PCD&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; ret;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path home(std&lt;span style="color:#666"&gt;::&lt;/span&gt;getenv(&lt;span style="color:#b44"&gt;&amp;#34;HOME&amp;#34;&lt;/span&gt;));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;vector&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;std&lt;span style="color:#666"&gt;::&lt;/span&gt;string&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; filenames &lt;span style="color:#666"&gt;=&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path(home &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Documents/Dataset/capture0001.pcd&amp;#34;&lt;/span&gt;).string(),
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path(home &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Documents/Dataset/capture0002.pcd&amp;#34;&lt;/span&gt;).string(),
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path(home &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Documents/Dataset/capture0003.pcd&amp;#34;&lt;/span&gt;).string(),
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path(home &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Documents/Dataset/capture0004.pcd&amp;#34;&lt;/span&gt;).string(),
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path(home &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Documents/Dataset/capture0005.pcd&amp;#34;&lt;/span&gt;).string(),
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; };
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (size_t i &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;; i &lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt; filenames.size(); i&lt;span style="color:#666"&gt;++&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; PCD m;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; m.name &lt;span style="color:#666"&gt;=&lt;/span&gt; filenames[i];
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;io&lt;span style="color:#666"&gt;::&lt;/span&gt;loadPCDFile(filenames[i], &lt;span style="color:#666"&gt;*&lt;/span&gt;m.cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;vector&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt;&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; indices;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;removeNaNFromPointCloud(&lt;span style="color:#666"&gt;*&lt;/span&gt;m.cloud, &lt;span style="color:#666"&gt;*&lt;/span&gt;m.cloud, indices);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ret.push_back(m);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; ret;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;void&lt;/span&gt; &lt;span style="color:#00a000"&gt;pairAlign&lt;/span&gt;(&lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; PointCloud&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr cloud_src,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; PointCloud&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr cloud_tgt,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; PointCloud&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr output,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Eigen&lt;span style="color:#666"&gt;::&lt;/span&gt;Matrix4f&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; final_transform,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#0b0;font-weight:bold"&gt;bool&lt;/span&gt; downsample &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#a2f"&gt;false&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; PointCloud&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr src(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; PointCloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; PointCloud&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr tgt(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; PointCloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;VoxelGrid&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; grid;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 下采样
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;if&lt;/span&gt; (downsample) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; grid.setLeafSize(&lt;span style="color:#666"&gt;0.05&lt;/span&gt;, &lt;span style="color:#666"&gt;0.05&lt;/span&gt;, &lt;span style="color:#666"&gt;0.05&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; grid.setInputCloud(cloud_src);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; grid.filter(&lt;span style="color:#666"&gt;*&lt;/span&gt;src);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; grid.setInputCloud(cloud_tgt);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; grid.filter(&lt;span style="color:#666"&gt;*&lt;/span&gt;tgt);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; } &lt;span style="color:#a2f;font-weight:bold"&gt;else&lt;/span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; src &lt;span style="color:#666"&gt;=&lt;/span&gt; cloud_src;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; tgt &lt;span style="color:#666"&gt;=&lt;/span&gt; cloud_tgt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 估计法向量
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; PointCloudWithNormals&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr points_with_normals_src(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; PointCloudWithNormals);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; PointCloudWithNormals&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr points_with_normals_tgt(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; PointCloudWithNormals);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;NormalEstimation&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointT, PointNormalT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; norm_est;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;search&lt;span style="color:#666"&gt;::&lt;/span&gt;KdTree&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr tree(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;search&lt;span style="color:#666"&gt;::&lt;/span&gt;KdTree&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;());
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; norm_est.setSearchMethod(tree);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; norm_est.setKSearch(&lt;span style="color:#666"&gt;30&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; norm_est.setInputCloud(src);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; norm_est.compute(&lt;span style="color:#666"&gt;*&lt;/span&gt;points_with_normals_src);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;copyPointCloud(&lt;span style="color:#666"&gt;*&lt;/span&gt;src, &lt;span style="color:#666"&gt;*&lt;/span&gt;points_with_normals_src);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; norm_est.setInputCloud(tgt);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; norm_est.compute(&lt;span style="color:#666"&gt;*&lt;/span&gt;points_with_normals_tgt);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;copyPointCloud(&lt;span style="color:#666"&gt;*&lt;/span&gt;tgt, &lt;span style="color:#666"&gt;*&lt;/span&gt;points_with_normals_tgt);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; MyPointRepresentation point_repr;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#0b0;font-weight:bold"&gt;float&lt;/span&gt; alpha[&lt;span style="color:#666"&gt;4&lt;/span&gt;] &lt;span style="color:#666"&gt;=&lt;/span&gt; {&lt;span style="color:#666"&gt;1.0&lt;/span&gt;, &lt;span style="color:#666"&gt;1.0&lt;/span&gt;, &lt;span style="color:#666"&gt;1.0&lt;/span&gt;, &lt;span style="color:#666"&gt;1.0&lt;/span&gt;};
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; point_repr.setRescaleValues(alpha);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// ICP
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;IterativeClosestPointNonLinear&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointNormalT, PointNormalT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; reg;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reg.setTransformationEpsilon(&lt;span style="color:#666"&gt;1e-6&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reg.setMaxCorrespondenceDistance(&lt;span style="color:#666"&gt;0.1&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reg.setPointRepresentation(std&lt;span style="color:#666"&gt;::&lt;/span&gt;make_shared&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; MyPointRepresentation&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;(point_repr));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reg.setInputSource(points_with_normals_src);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reg.setInputTarget(points_with_normals_tgt);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Eigen&lt;span style="color:#666"&gt;::&lt;/span&gt;Matrix4f ti &lt;span style="color:#666"&gt;=&lt;/span&gt; Eigen&lt;span style="color:#666"&gt;::&lt;/span&gt;Matrix4f&lt;span style="color:#666"&gt;::&lt;/span&gt;Identity(), prev, target_to_source;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; PointCloudWithNormals&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr reg_result &lt;span style="color:#666"&gt;=&lt;/span&gt; points_with_normals_src;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reg.setMaximumIterations(&lt;span style="color:#666"&gt;2&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; i &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;; i &lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color:#666"&gt;30&lt;/span&gt;; &lt;span style="color:#666"&gt;++&lt;/span&gt;i) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cerr &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Iteration nr: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; i &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; points_with_normals_src &lt;span style="color:#666"&gt;=&lt;/span&gt; reg_result;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reg.setInputSource(points_with_normals_src);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reg.align(&lt;span style="color:#666"&gt;*&lt;/span&gt;reg_result);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ti &lt;span style="color:#666"&gt;=&lt;/span&gt; reg.getFinalTransformation() &lt;span style="color:#666"&gt;*&lt;/span&gt; ti;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;if&lt;/span&gt; (std&lt;span style="color:#666"&gt;::&lt;/span&gt;abs((reg.getLastIncrementalTransformation() &lt;span style="color:#666"&gt;-&lt;/span&gt; prev).sum()) &lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reg.getTransformationEpsilon()) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; reg.setMaxCorrespondenceDistance(reg.getMaxCorrespondenceDistance() &lt;span style="color:#666"&gt;-&lt;/span&gt; &lt;span style="color:#666"&gt;0.001&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; prev &lt;span style="color:#666"&gt;=&lt;/span&gt; reg.getLastIncrementalTransformation();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; showCloudsRight(points_with_normals_tgt, points_with_normals_src);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; target_to_source &lt;span style="color:#666"&gt;=&lt;/span&gt; ti.inverse();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;transformPointCloud(&lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_tgt, &lt;span style="color:#666"&gt;*&lt;/span&gt;output, target_to_source);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;removePointCloud(&lt;span style="color:#b44"&gt;&amp;#34;source&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;removePointCloud(&lt;span style="color:#b44"&gt;&amp;#34;target&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; PointCloudColorHandlerCustom&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; cloud_tgt_h(output, &lt;span style="color:#666"&gt;0&lt;/span&gt;, &lt;span style="color:#666"&gt;255&lt;/span&gt;, &lt;span style="color:#666"&gt;0&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; PointCloudColorHandlerCustom&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; cloud_src_h(cloud_src, &lt;span style="color:#666"&gt;255&lt;/span&gt;, &lt;span style="color:#666"&gt;0&lt;/span&gt;, &lt;span style="color:#666"&gt;0&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;addPointCloud(output, cloud_tgt_h, &lt;span style="color:#b44"&gt;&amp;#34;target&amp;#34;&lt;/span&gt;, vp_2);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;addPointCloud(cloud_src, cloud_src_h, &lt;span style="color:#b44"&gt;&amp;#34;source&amp;#34;&lt;/span&gt;, vp_2);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; next_step &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#a2f"&gt;false&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;while&lt;/span&gt; (&lt;span style="color:#666"&gt;!&lt;/span&gt;next_step &lt;span style="color:#666"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="color:#666"&gt;!&lt;/span&gt;p&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;wasStopped())
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;spinOnce(&lt;span style="color:#666"&gt;100&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;removePointCloud(&lt;span style="color:#b44"&gt;&amp;#34;source&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;removePointCloud(&lt;span style="color:#b44"&gt;&amp;#34;target&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt;output &lt;span style="color:#666"&gt;+=&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt;cloud_src;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; final_transform &lt;span style="color:#666"&gt;=&lt;/span&gt; target_to_source;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080;font-style:italic"&gt;// 键盘回调函数
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;void&lt;/span&gt; &lt;span style="color:#00a000"&gt;keyboardCallback&lt;/span&gt;(&lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;visualization&lt;span style="color:#666"&gt;::&lt;/span&gt;KeyboardEvent&lt;span style="color:#666"&gt;&amp;amp;&lt;/span&gt; event, &lt;span style="color:#0b0;font-weight:bold"&gt;void&lt;/span&gt;&lt;span style="color:#666"&gt;*&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;if&lt;/span&gt; (event.keyDown() &lt;span style="color:#666"&gt;&amp;amp;&amp;amp;&lt;/span&gt; event.getKeyCode() &lt;span style="color:#666"&gt;==&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#39;n&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; next_step &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#a2f"&gt;true&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; &lt;span style="color:#00a000"&gt;main&lt;/span&gt;(&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; argc, &lt;span style="color:#0b0;font-weight:bold"&gt;char&lt;/span&gt;&lt;span style="color:#666"&gt;*&lt;/span&gt; argv[]) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; pcds &lt;span style="color:#666"&gt;=&lt;/span&gt; loadData();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;visualization&lt;span style="color:#666"&gt;::&lt;/span&gt;PCLVisualizer(argc, argv, &lt;span style="color:#b44"&gt;&amp;#34;example&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;createViewPort(&lt;span style="color:#666"&gt;0.0&lt;/span&gt;, &lt;span style="color:#666"&gt;0&lt;/span&gt;, &lt;span style="color:#666"&gt;0.5&lt;/span&gt;, &lt;span style="color:#666"&gt;1.0&lt;/span&gt;, vp_1);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;createViewPort(&lt;span style="color:#666"&gt;0.5&lt;/span&gt;, &lt;span style="color:#666"&gt;0&lt;/span&gt;, &lt;span style="color:#666"&gt;1.0&lt;/span&gt;, &lt;span style="color:#666"&gt;1.0&lt;/span&gt;, vp_2);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;setBackgroundColor(&lt;span style="color:#666"&gt;0.2&lt;/span&gt;, &lt;span style="color:#666"&gt;0.2&lt;/span&gt;, &lt;span style="color:#666"&gt;0.2&lt;/span&gt;, vp_1);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;setBackgroundColor(&lt;span style="color:#666"&gt;0.7&lt;/span&gt;, &lt;span style="color:#666"&gt;0.7&lt;/span&gt;, &lt;span style="color:#666"&gt;0.7&lt;/span&gt;, vp_2);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;registerKeyboardCallback(keyboardCallback);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; PointCloud&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr result(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; PointCloud), source, target;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Eigen&lt;span style="color:#666"&gt;::&lt;/span&gt;Matrix4f global_transform &lt;span style="color:#666"&gt;=&lt;/span&gt; Eigen&lt;span style="color:#666"&gt;::&lt;/span&gt;Matrix4f&lt;span style="color:#666"&gt;::&lt;/span&gt;Identity(), pair_transform;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;for&lt;/span&gt; (size_t i &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;1&lt;/span&gt;; i &lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt; pcds.size(); i&lt;span style="color:#666"&gt;++&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; source &lt;span style="color:#666"&gt;=&lt;/span&gt; pcds[i &lt;span style="color:#666"&gt;-&lt;/span&gt; &lt;span style="color:#666"&gt;1&lt;/span&gt;].cloud;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; target &lt;span style="color:#666"&gt;=&lt;/span&gt; pcds[i].cloud;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; showCloudsLeft(source, target);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; PointCloud&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr temp(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; PointCloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pairAlign(source, target, temp, pair_transform, &lt;span style="color:#a2f"&gt;true&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;transformPointCloud(&lt;span style="color:#666"&gt;*&lt;/span&gt;temp, &lt;span style="color:#666"&gt;*&lt;/span&gt;result, global_transform);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; global_transform &lt;span style="color:#666"&gt;*=&lt;/span&gt; pair_transform;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; p&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;spin();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="ndt-算法"&gt;NDT 算法&lt;/h3&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-10"&gt;10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-11"&gt;11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-12"&gt;12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-13"&gt;13&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-14"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-14"&gt;14&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-15"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-15"&gt;15&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-16"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-16"&gt;16&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-17"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-17"&gt;17&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-18"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-18"&gt;18&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-19"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-19"&gt;19&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-20"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-20"&gt;20&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-21"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-21"&gt;21&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-22"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-22"&gt;22&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-23"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-23"&gt;23&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-24"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-24"&gt;24&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-25"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-25"&gt;25&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-26"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-26"&gt;26&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-27"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-27"&gt;27&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-28"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-28"&gt;28&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-29"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-29"&gt;29&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-30"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-30"&gt;30&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-31"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-31"&gt;31&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-32"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-32"&gt;32&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-33"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-33"&gt;33&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-34"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-34"&gt;34&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-35"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-35"&gt;35&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-36"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-36"&gt;36&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-37"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-37"&gt;37&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-38"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-38"&gt;38&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-39"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-39"&gt;39&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-40"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-40"&gt;40&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-41"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-41"&gt;41&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-42"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-42"&gt;42&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-43"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-43"&gt;43&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-44"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-44"&gt;44&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-45"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-45"&gt;45&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-46"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-46"&gt;46&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-47"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-47"&gt;47&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-48"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-48"&gt;48&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-49"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-49"&gt;49&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-50"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-50"&gt;50&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-51"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-51"&gt;51&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-52"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-52"&gt;52&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-53"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-53"&gt;53&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-54"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-54"&gt;54&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-55"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-55"&gt;55&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-56"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-56"&gt;56&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-57"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-57"&gt;57&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-58"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-58"&gt;58&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-59"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-59"&gt;59&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-60"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-60"&gt;60&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-61"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-61"&gt;61&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-62"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-62"&gt;62&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-63"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-63"&gt;63&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-64"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-64"&gt;64&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-65"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-65"&gt;65&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-66"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-66"&gt;66&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-67"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-67"&gt;67&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-68"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-68"&gt;68&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-69"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-69"&gt;69&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-70"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-70"&gt;70&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-71"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-71"&gt;71&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-72"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-72"&gt;72&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-73"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-73"&gt;73&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-74"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-74"&gt;74&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-75"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-75"&gt;75&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-76"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-76"&gt;76&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-77"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-77"&gt;77&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-78"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-78"&gt;78&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-79"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-79"&gt;79&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-80"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-80"&gt;80&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-81"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-81"&gt;81&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-82"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-82"&gt;82&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-83"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-83"&gt;83&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-41-84"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-41-84"&gt;84&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;filesystem&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;thread&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/io/pcd_io.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/visualization/pcl_visualizer.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/filters/filter.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/filters/voxel_grid.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/filters/approximate_voxel_grid.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/features/normal_3d.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/registration/ndt.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;using&lt;/span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;namespace&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;chrono_literals;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; &lt;span style="color:#00a000"&gt;main&lt;/span&gt;(&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; argc, &lt;span style="color:#0b0;font-weight:bold"&gt;char&lt;/span&gt;&lt;span style="color:#666"&gt;*&lt;/span&gt; argv[]) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path home(std&lt;span style="color:#666"&gt;::&lt;/span&gt;getenv(&lt;span style="color:#b44"&gt;&amp;#34;HOME&amp;#34;&lt;/span&gt;));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; pcd1_file &lt;span style="color:#666"&gt;=&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path(home &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Documents/Dataset/room_scan1.pcd&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; pcd2_file &lt;span style="color:#666"&gt;=&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path(home &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Documents/Dataset/room_scan2.pcd&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr target_cloud(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;if&lt;/span&gt; (pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;io&lt;span style="color:#666"&gt;::&lt;/span&gt;loadPCDFile(pcd1_file.string(), &lt;span style="color:#666"&gt;*&lt;/span&gt;target_cloud) &lt;span style="color:#666"&gt;==&lt;/span&gt; &lt;span style="color:#666"&gt;-&lt;/span&gt;&lt;span style="color:#666"&gt;1&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#666"&gt;-&lt;/span&gt;&lt;span style="color:#666"&gt;1&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pclViewer(target_cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr input_cloud(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;if&lt;/span&gt; (pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;io&lt;span style="color:#666"&gt;::&lt;/span&gt;loadPCDFile(pcd2_file.string(), &lt;span style="color:#666"&gt;*&lt;/span&gt;input_cloud) &lt;span style="color:#666"&gt;==&lt;/span&gt; &lt;span style="color:#666"&gt;-&lt;/span&gt;&lt;span style="color:#666"&gt;1&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#666"&gt;-&lt;/span&gt;&lt;span style="color:#666"&gt;1&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pclViewer(input_cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 近似体素滤波，精度比体素滤波低，但是速度快
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr filtered_cloud(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;ApproximateVoxelGrid&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; approximate_voxel_filter;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; approximate_voxel_filter.setLeafSize(&lt;span style="color:#666"&gt;0.2&lt;/span&gt;, &lt;span style="color:#666"&gt;0.2&lt;/span&gt;, &lt;span style="color:#666"&gt;0.2&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; approximate_voxel_filter.setInputCloud(input_cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; approximate_voxel_filter.filter(&lt;span style="color:#666"&gt;*&lt;/span&gt;filtered_cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;NormalDistributionsTransform&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ, pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; ndt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ndt.setTransformationEpsilon(&lt;span style="color:#666"&gt;0.01&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ndt.setStepSize(&lt;span style="color:#666"&gt;0.1&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ndt.setResolution(&lt;span style="color:#666"&gt;1.0&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ndt.setMaximumIterations(&lt;span style="color:#666"&gt;35&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ndt.setInputSource(filtered_cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ndt.setInputTarget(target_cloud);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 初始化估计
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Eigen&lt;span style="color:#666"&gt;::&lt;/span&gt;AngleAxisf init_rotation(&lt;span style="color:#666"&gt;0.6931&lt;/span&gt;, Eigen&lt;span style="color:#666"&gt;::&lt;/span&gt;Vector3f&lt;span style="color:#666"&gt;::&lt;/span&gt;UnitZ());
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Eigen&lt;span style="color:#666"&gt;::&lt;/span&gt;Translation3f init_translation(&lt;span style="color:#666"&gt;1.79387&lt;/span&gt;, &lt;span style="color:#666"&gt;0.720047&lt;/span&gt;, &lt;span style="color:#666"&gt;0&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Eigen&lt;span style="color:#666"&gt;::&lt;/span&gt;Matrix4f init_guess &lt;span style="color:#666"&gt;=&lt;/span&gt; (init_translation &lt;span style="color:#666"&gt;*&lt;/span&gt; init_rotation).matrix();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;::&lt;/span&gt;Ptr output_cloud(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ndt.align(&lt;span style="color:#666"&gt;*&lt;/span&gt;output_cloud, init_guess);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;cout &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Normal Distributions Transform has &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; (ndt.hasConverged ()&lt;span style="color:#666"&gt;?&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;converged&amp;#34;&lt;/span&gt;&lt;span style="color:#666"&gt;:&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;not converged&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;, score: &amp;#34;&lt;/span&gt; &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; ndt.getFitnessScore () &lt;span style="color:#666"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;endl;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 可视化
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;visualization&lt;span style="color:#666"&gt;::&lt;/span&gt;PCLVisualizer&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr viewer(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;visualization&lt;span style="color:#666"&gt;::&lt;/span&gt;PCLVisualizer(&lt;span style="color:#b44"&gt;&amp;#34;viewer&amp;#34;&lt;/span&gt;));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; viewer&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;setBackgroundColor(&lt;span style="color:#666"&gt;0.1&lt;/span&gt;, &lt;span style="color:#666"&gt;0.1&lt;/span&gt;, &lt;span style="color:#666"&gt;0.1&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;visualization&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloudColorHandlerCustom&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; target_color(target_cloud, &lt;span style="color:#666"&gt;255&lt;/span&gt;, &lt;span style="color:#666"&gt;0&lt;/span&gt;, &lt;span style="color:#666"&gt;0&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; viewer&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;addPointCloud(target_cloud, target_color, &lt;span style="color:#b44"&gt;&amp;#34;target cloud&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;visualization&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloudColorHandlerCustom&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointXYZ&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; output_color(output_cloud, &lt;span style="color:#666"&gt;0&lt;/span&gt;, &lt;span style="color:#666"&gt;255&lt;/span&gt;, &lt;span style="color:#666"&gt;0&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; viewer&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;addPointCloud(output_cloud, output_color, &lt;span style="color:#b44"&gt;&amp;#34;output cloud&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; viewer&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;addCoordinateSystem(&lt;span style="color:#666"&gt;1.0&lt;/span&gt;, &lt;span style="color:#b44"&gt;&amp;#34;global&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; viewer&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;initCameraParameters();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;while&lt;/span&gt; (&lt;span style="color:#666"&gt;!&lt;/span&gt;viewer&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;wasStopped()) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; viewer&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;spinOnce(&lt;span style="color:#666"&gt;100&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;this_thread&lt;span style="color:#666"&gt;::&lt;/span&gt;sleep_for(&lt;span style="color:#666"&gt;100&lt;/span&gt;ms);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-42-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-42-1"&gt;1&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Normal Distributions Transform has converged, score: 0.679887&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id="在场景中估计对象位姿"&gt;在场景中估计对象位姿&lt;/h3&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-1"&gt; 1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-2"&gt; 2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-3"&gt; 3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-4"&gt; 4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-5"&gt; 5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-6"&gt; 6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-7"&gt; 7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-8"&gt; 8&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-9"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-9"&gt; 9&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-10"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-10"&gt; 10&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-11"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-11"&gt; 11&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-12"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-12"&gt; 12&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-13"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-13"&gt; 13&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-14"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-14"&gt; 14&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-15"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-15"&gt; 15&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-16"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-16"&gt; 16&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-17"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-17"&gt; 17&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-18"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-18"&gt; 18&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-19"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-19"&gt; 19&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-20"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-20"&gt; 20&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-21"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-21"&gt; 21&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-22"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-22"&gt; 22&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-23"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-23"&gt; 23&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-24"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-24"&gt; 24&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-25"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-25"&gt; 25&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-26"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-26"&gt; 26&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-27"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-27"&gt; 27&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-28"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-28"&gt; 28&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-29"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-29"&gt; 29&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-30"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-30"&gt; 30&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-31"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-31"&gt; 31&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-32"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-32"&gt; 32&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-33"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-33"&gt; 33&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-34"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-34"&gt; 34&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-35"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-35"&gt; 35&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-36"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-36"&gt; 36&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-37"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-37"&gt; 37&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-38"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-38"&gt; 38&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-39"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-39"&gt; 39&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-40"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-40"&gt; 40&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-41"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-41"&gt; 41&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-42"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-42"&gt; 42&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-43"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-43"&gt; 43&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-44"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-44"&gt; 44&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-45"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-45"&gt; 45&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-46"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-46"&gt; 46&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-47"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-47"&gt; 47&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-48"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-48"&gt; 48&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-49"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-49"&gt; 49&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-50"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-50"&gt; 50&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-51"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-51"&gt; 51&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-52"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-52"&gt; 52&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-53"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-53"&gt; 53&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-54"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-54"&gt; 54&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-55"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-55"&gt; 55&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-56"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-56"&gt; 56&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-57"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-57"&gt; 57&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-58"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-58"&gt; 58&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-59"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-59"&gt; 59&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-60"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-60"&gt; 60&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-61"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-61"&gt; 61&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-62"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-62"&gt; 62&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-63"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-63"&gt; 63&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-64"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-64"&gt; 64&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-65"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-65"&gt; 65&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-66"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-66"&gt; 66&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-67"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-67"&gt; 67&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-68"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-68"&gt; 68&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-69"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-69"&gt; 69&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-70"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-70"&gt; 70&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-71"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-71"&gt; 71&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-72"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-72"&gt; 72&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-73"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-73"&gt; 73&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-74"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-74"&gt; 74&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-75"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-75"&gt; 75&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-76"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-76"&gt; 76&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-77"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-77"&gt; 77&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-78"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-78"&gt; 78&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-79"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-79"&gt; 79&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-80"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-80"&gt; 80&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-81"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-81"&gt; 81&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-82"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-82"&gt; 82&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-83"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-83"&gt; 83&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-84"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-84"&gt; 84&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-85"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-85"&gt; 85&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-86"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-86"&gt; 86&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-87"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-87"&gt; 87&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-88"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-88"&gt; 88&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-89"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-89"&gt; 89&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-90"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-90"&gt; 90&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-91"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-91"&gt; 91&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-92"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-92"&gt; 92&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-93"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-93"&gt; 93&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-94"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-94"&gt; 94&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-95"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-95"&gt; 95&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-96"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-96"&gt; 96&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-97"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-97"&gt; 97&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-98"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-98"&gt; 98&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-99"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-99"&gt; 99&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-100"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-100"&gt;100&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-101"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-101"&gt;101&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-102"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-102"&gt;102&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-103"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-103"&gt;103&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-104"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-104"&gt;104&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-105"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-105"&gt;105&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-106"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-106"&gt;106&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-43-107"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-43-107"&gt;107&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;filesystem&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;Eigen/Core&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_types.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/point_cloud.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/common/time.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/console/print.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/features/normal_3d_omp.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/features/fpfh_omp.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/filters/filter.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/filters/voxel_grid.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/io/pcd_io.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/registration/sample_consensus_prerejective.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#080"&gt;#include&lt;/span&gt; &lt;span style="color:#080"&gt;&amp;lt;pcl/visualization/pcl_visualizer.h&amp;gt;&lt;/span&gt;&lt;span style="color:#080"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;using&lt;/span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;namespace&lt;/span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;chrono_literals;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;using&lt;/span&gt; PointNT &lt;span style="color:#666"&gt;=&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointNormal;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;using&lt;/span&gt; PointCloudT &lt;span style="color:#666"&gt;=&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointNT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;using&lt;/span&gt; FeatureT &lt;span style="color:#666"&gt;=&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;FPFHSignature33;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;using&lt;/span&gt; FeatureEstimationT &lt;span style="color:#666"&gt;=&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;FPFHEstimationOMP&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointNT, PointNT, FeatureT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;using&lt;/span&gt; FeatureCloudT &lt;span style="color:#666"&gt;=&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloud&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;FeatureT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a2f;font-weight:bold"&gt;using&lt;/span&gt; ColorHandlerT &lt;span style="color:#666"&gt;=&lt;/span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;visualization&lt;span style="color:#666"&gt;::&lt;/span&gt;PointCloudColorHandlerCustom&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointNT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; &lt;span style="color:#00a000"&gt;main&lt;/span&gt;(&lt;span style="color:#0b0;font-weight:bold"&gt;int&lt;/span&gt; argc, &lt;span style="color:#0b0;font-weight:bold"&gt;char&lt;/span&gt;&lt;span style="color:#666"&gt;*&lt;/span&gt; argv[]) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path home(std&lt;span style="color:#666"&gt;::&lt;/span&gt;getenv(&lt;span style="color:#b44"&gt;&amp;#34;HOME&amp;#34;&lt;/span&gt;));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; object_file &lt;span style="color:#666"&gt;=&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path(home &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Documents/Dataset/chef.pcd&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;auto&lt;/span&gt; scene_file &lt;span style="color:#666"&gt;=&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; std&lt;span style="color:#666"&gt;::&lt;/span&gt;filesystem&lt;span style="color:#666"&gt;::&lt;/span&gt;path(home &lt;span style="color:#666"&gt;/&lt;/span&gt; &lt;span style="color:#b44"&gt;&amp;#34;Documents/Dataset/rs1.pcd&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; PointCloudT&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr object(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; PointCloudT);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; PointCloudT&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr object_aligned(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; PointCloudT);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; PointCloudT&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr scene_before_downsampling(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; PointCloudT);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; PointCloudT&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr scene(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; PointCloudT);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; FeatureCloudT&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr object_features(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; FeatureCloudT);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; FeatureCloudT&lt;span style="color:#666"&gt;::&lt;/span&gt;Ptr scene_features(&lt;span style="color:#a2f;font-weight:bold"&gt;new&lt;/span&gt; FeatureCloudT);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;if&lt;/span&gt; (pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;io&lt;span style="color:#666"&gt;::&lt;/span&gt;loadPCDFile&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointNT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;(object_file.string(), &lt;span style="color:#666"&gt;*&lt;/span&gt;object) &lt;span style="color:#666"&gt;==&lt;/span&gt; &lt;span style="color:#666"&gt;-&lt;/span&gt;&lt;span style="color:#666"&gt;1&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#666"&gt;-&lt;/span&gt;&lt;span style="color:#666"&gt;1&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;if&lt;/span&gt; (pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;io&lt;span style="color:#666"&gt;::&lt;/span&gt;loadPCDFile&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointNT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt;(scene_file.string(), &lt;span style="color:#666"&gt;*&lt;/span&gt;scene_before_downsampling) &lt;span style="color:#666"&gt;==&lt;/span&gt; &lt;span style="color:#666"&gt;-&lt;/span&gt;&lt;span style="color:#666"&gt;1&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#666"&gt;-&lt;/span&gt;&lt;span style="color:#666"&gt;1&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 下采样
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;VoxelGrid&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointNT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; voxel_filter;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;const&lt;/span&gt; &lt;span style="color:#0b0;font-weight:bold"&gt;float&lt;/span&gt; leaf &lt;span style="color:#666"&gt;=&lt;/span&gt; &lt;span style="color:#666"&gt;0.005f&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; voxel_filter.setLeafSize(leaf, leaf, leaf);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; voxel_filter.setInputCloud(object);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; voxel_filter.filter(&lt;span style="color:#666"&gt;*&lt;/span&gt;object);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; voxel_filter.setInputCloud(scene_before_downsampling);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; voxel_filter.filter(&lt;span style="color:#666"&gt;*&lt;/span&gt;scene);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 法向量估计
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;NormalEstimationOMP&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointNT, PointNT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; nest;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; nest.setRadiusSearch(&lt;span style="color:#666"&gt;0.005&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; nest.setInputCloud(scene);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; nest.setSearchSurface(scene_before_downsampling);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; nest.compute(&lt;span style="color:#666"&gt;*&lt;/span&gt;scene);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 特征估计
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; FeatureEstimationT fest;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; fest.setRadiusSearch(&lt;span style="color:#666"&gt;0.025&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; fest.setInputCloud(object);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; fest.setInputNormals(object);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; fest.compute(&lt;span style="color:#666"&gt;*&lt;/span&gt;object_features);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; fest.setInputCloud(scene);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; fest.setInputNormals(scene);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; fest.compute(&lt;span style="color:#666"&gt;*&lt;/span&gt;scene_features);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#080;font-style:italic"&gt;// 配准
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;SampleConsensusPrerejective&lt;span style="color:#666"&gt;&amp;lt;&lt;/span&gt;PointNT, PointNT, FeatureT&lt;span style="color:#666"&gt;&amp;gt;&lt;/span&gt; align;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; align.setInputSource(object);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; align.setSourceFeatures(object_features);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; align.setInputTarget(scene);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; align.setTargetFeatures(scene_features);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; align.setMaximumIterations(&lt;span style="color:#666"&gt;50000&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; align.setNumberOfSamples(&lt;span style="color:#666"&gt;3&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; align.setCorrespondenceRandomness(&lt;span style="color:#666"&gt;5&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; align.setSimilarityThreshold(&lt;span style="color:#666"&gt;0.95f&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; align.setMaxCorrespondenceDistance(&lt;span style="color:#666"&gt;2.5f&lt;/span&gt; &lt;span style="color:#666"&gt;*&lt;/span&gt; leaf);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; align.setInlierFraction(&lt;span style="color:#666"&gt;0.25f&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; align.align(&lt;span style="color:#666"&gt;*&lt;/span&gt;object_aligned);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;if&lt;/span&gt; (align.hasConverged()) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; printf (&lt;span style="color:#b44"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#b62;font-weight:bold"&gt;\n&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Eigen&lt;span style="color:#666"&gt;::&lt;/span&gt;Matrix4f transformation &lt;span style="color:#666"&gt;=&lt;/span&gt; align.getFinalTransformation ();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;console&lt;span style="color:#666"&gt;::&lt;/span&gt;print_info (&lt;span style="color:#b44"&gt;&amp;#34; | %6.3f %6.3f %6.3f | &lt;/span&gt;&lt;span style="color:#b62;font-weight:bold"&gt;\n&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;&lt;/span&gt;, transformation (&lt;span style="color:#666"&gt;0&lt;/span&gt;,&lt;span style="color:#666"&gt;0&lt;/span&gt;), transformation (&lt;span style="color:#666"&gt;0&lt;/span&gt;,&lt;span style="color:#666"&gt;1&lt;/span&gt;), transformation (&lt;span style="color:#666"&gt;0&lt;/span&gt;,&lt;span style="color:#666"&gt;2&lt;/span&gt;));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;console&lt;span style="color:#666"&gt;::&lt;/span&gt;print_info (&lt;span style="color:#b44"&gt;&amp;#34;R = | %6.3f %6.3f %6.3f | &lt;/span&gt;&lt;span style="color:#b62;font-weight:bold"&gt;\n&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;&lt;/span&gt;, transformation (&lt;span style="color:#666"&gt;1&lt;/span&gt;,&lt;span style="color:#666"&gt;0&lt;/span&gt;), transformation (&lt;span style="color:#666"&gt;1&lt;/span&gt;,&lt;span style="color:#666"&gt;1&lt;/span&gt;), transformation (&lt;span style="color:#666"&gt;1&lt;/span&gt;,&lt;span style="color:#666"&gt;2&lt;/span&gt;));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;console&lt;span style="color:#666"&gt;::&lt;/span&gt;print_info (&lt;span style="color:#b44"&gt;&amp;#34; | %6.3f %6.3f %6.3f | &lt;/span&gt;&lt;span style="color:#b62;font-weight:bold"&gt;\n&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;&lt;/span&gt;, transformation (&lt;span style="color:#666"&gt;2&lt;/span&gt;,&lt;span style="color:#666"&gt;0&lt;/span&gt;), transformation (&lt;span style="color:#666"&gt;2&lt;/span&gt;,&lt;span style="color:#666"&gt;1&lt;/span&gt;), transformation (&lt;span style="color:#666"&gt;2&lt;/span&gt;,&lt;span style="color:#666"&gt;2&lt;/span&gt;));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;console&lt;span style="color:#666"&gt;::&lt;/span&gt;print_info (&lt;span style="color:#b44"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#b62;font-weight:bold"&gt;\n&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;console&lt;span style="color:#666"&gt;::&lt;/span&gt;print_info (&lt;span style="color:#b44"&gt;&amp;#34;t = &amp;lt; %0.3f, %0.3f, %0.3f &amp;gt;&lt;/span&gt;&lt;span style="color:#b62;font-weight:bold"&gt;\n&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;&lt;/span&gt;, transformation (&lt;span style="color:#666"&gt;0&lt;/span&gt;,&lt;span style="color:#666"&gt;3&lt;/span&gt;), transformation (&lt;span style="color:#666"&gt;1&lt;/span&gt;,&lt;span style="color:#666"&gt;3&lt;/span&gt;), transformation (&lt;span style="color:#666"&gt;2&lt;/span&gt;,&lt;span style="color:#666"&gt;3&lt;/span&gt;));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;console&lt;span style="color:#666"&gt;::&lt;/span&gt;print_info (&lt;span style="color:#b44"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#b62;font-weight:bold"&gt;\n&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;console&lt;span style="color:#666"&gt;::&lt;/span&gt;print_info (&lt;span style="color:#b44"&gt;&amp;#34;Inliers: %i/%i&lt;/span&gt;&lt;span style="color:#b62;font-weight:bold"&gt;\n&lt;/span&gt;&lt;span style="color:#b44"&gt;&amp;#34;&lt;/span&gt;, align.getInliers ().size (), object&lt;span style="color:#666"&gt;-&amp;gt;&lt;/span&gt;size ());
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pcl&lt;span style="color:#666"&gt;::&lt;/span&gt;visualization&lt;span style="color:#666"&gt;::&lt;/span&gt;PCLVisualizer visu(&lt;span style="color:#b44"&gt;&amp;#34;Alignment&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; visu.addPointCloud (scene, ColorHandlerT (scene, &lt;span style="color:#666"&gt;0.0&lt;/span&gt;, &lt;span style="color:#666"&gt;255.0&lt;/span&gt;, &lt;span style="color:#666"&gt;0.0&lt;/span&gt;), &lt;span style="color:#b44"&gt;&amp;#34;scene&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; visu.addPointCloud (object_aligned, ColorHandlerT (object_aligned, &lt;span style="color:#666"&gt;0.0&lt;/span&gt;, &lt;span style="color:#666"&gt;0.0&lt;/span&gt;, &lt;span style="color:#666"&gt;255.0&lt;/span&gt;), &lt;span style="color:#b44"&gt;&amp;#34;object_aligned&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; visu.spin ();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a2f;font-weight:bold"&gt;return&lt;/span&gt; &lt;span style="color:#666"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="highlight-container"&gt;
&lt;button class="copy-code-btn outline"&gt;Copy&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;div style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;
&lt;table style="border-spacing:0;padding:0;margin:0;border:0;"&gt;&lt;tr&gt;&lt;td style="vertical-align:top;padding:0;margin:0;border:0;"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-44-1"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-44-1"&gt;1&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-44-2"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-44-2"&gt;2&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-44-3"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-44-3"&gt;3&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-44-4"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-44-4"&gt;4&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-44-5"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-44-5"&gt;5&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-44-6"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-44-6"&gt;6&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-44-7"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-44-7"&gt;7&lt;/a&gt;
&lt;/span&gt;&lt;span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f" id="hl-44-8"&gt;&lt;a style="outline:none;text-decoration:none;color:inherit" href="#hl-44-8"&gt;8&lt;/a&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td style="vertical-align:top;padding:0;margin:0;border:0;;width:100%"&gt;
&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | 0.007 -0.993 -0.118 |
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;R = | -1.000 -0.009 0.020 |
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | -0.021 0.118 -0.993 |
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;t = &amp;lt; -0.130, 0.065, 0.078 &amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Inliers: 1422/3432&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item></channel></rss>