- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PCL教程-点云分割之区域⽣长分割算法
原⽂链接 :
本教程使⽤到的点云数据 :
在本篇教程中,我们 学习如何使⽤由pcl::RegionGrowing类实现的区域⽣长算法。该算法的⽬的是合并在平滑约束条件下⾜够接近的
点。因此,该算法的输出数据结构是由聚类组成的数组,其中每个聚类都是被认为是同⼀光滑表⾯的⼀部分的点的集合。该算法的⼯作原理
(光滑度的计算)是基于两点法线之间的⾓度⽐较。
⽬录
基基本本原原理理
⾸先,它根据点的曲率值对点进⾏排序。需要这样做是因为区域从曲率最⼩的点开始增长。这样做的原因是曲率最⼩的点位于平坦区域(从
最平坦区域⽣长可以减少段的总数)。
我们有了分类过的云。直到云中没有未标记点时,算法选取曲率值最⼩的点,开始区域的增长。这个过程如下所⽰ :
选中的点被添加到名为种⼦的集合中。
对于每⼀个种⼦点,找到它的邻近点 :
算出每个相邻点的法线和当前种⼦点的法线之间的⾓度,如果⾓度⼩于阈值,则 当前点添加到当前区域。
然后计算每个邻居点的曲率值,如果曲率⼩于阈值,那么这个点被添加到种⼦中。
当前的种⼦从种⼦列表中移除。
如果种⼦列表变成空的,这意味着该区域⽣长已完成,继续重复上述过程。
区域⽣长算法 : 具有相似性的点云集合起来构成区域。
⾸先对每个需要分割的区域找出⼀个种⼦点作为⽣长的起点,然后 种⼦点周围邻域中与种⼦有相同或 相似性质的点合并到种⼦像素
所在的区域中。⽽新的点继续作为种⼦向四周⽣长,直到再没有满⾜条件 的像素可以包括进来,⼀个区域就⽣长⽽成了。
算法流程 :
1. 计算法线normal 和曲率curvatures,依据曲率升序 排序 ;
2. 选择曲率最低的为初始种⼦点,种⼦周围的临近点和 种⼦点云相⽐较 ;
3. 法线的⽅向是否⾜够相近 (法线夹⾓⾜够 r p y), 法线夹⾓阈值 ;
4. 曲率是否⾜够⼩ (表⾯处在同⼀个弯曲程度),区域 差值阈值 ;
5. 如果满⾜2,3则该点可⽤做种⼦点; 6. 如果只满⾜2,则归类⽽不做种⼦;
算算法法伪伪代代码码
输输⼊⼊
Point cloud =
Point normals =
Points curvatures =
Neighbour finding function
Curvature threshold
Angle threshold
初初始始化化
区域列表置为空 : Region list
可⽤的点云列表 :Available points list
算算法法实实现现
程程序序代代码码
#include iostream
#include vector
#include pcl/point_types.h
#include pcl/io/pcd_ io.h
#include pcl/search/search.h
#include pcl/search/kdtree.h
#include pcl/features/normal_3d.h
#include pcl/visuali ation/cloud_viewer.h
#include pcl/filters/passthrough.h
#include pcl/segmentation/region_growing.h
#include pcl/console/print.h
#include pcl/console/parse.h
#include pcl/console/time.h
#include windows.h
#include stdio.h
#include psapi.h
void PrintMemoryInfo( )
{
HANDLE hProcess;
PROCESS_ MEMORY_COUNT ERS pmc;
hProcess=GetCurrentProcess() ;
printf( \nProcess ID: %u\n, hProcess ) ;
// Print information about the memory usage of th
文档评论(0)