《PCL点云库学习&VS2010(X64)》Part 46 点云分类—画刷分类

《PCL点云库学习&VS2010(X64)》Part 46 点云分类—画刷分类


最近被这个鼠标消息函数弄得晕头转向,算法思路很清晰,逻辑分析及调试能力还有待提高。

该算法主要针对分类而言,针对CloudCompare中的多段线分割,在此思路的触发下,写了画刷分类算法,目前见到的软件就国外的TerraSolid与另外一个软件可以做到,国内的Lidar360及点云魔方等暂时还没有。功能很简单,实现起来也还好。
思路:
一、单个点画刷
(1)选取屏幕坐标后触发mousePressEvent()函数;
(2)触发相应的PointPicked()函数,找到鼠标点坐标;
(3)找到鼠标坐标点对应到GL窗口中的三维坐标;
(4)查找三维坐标邻域,将邻域点设置颜色标记并新建对象输出。

2、连续移动画刷
(1)移动鼠标,触发mouseMoveEvent()函数,返回鼠标坐标点集;
(2)每次移动鼠标触发相应的PointPicked()函数,找到鼠标点坐标集;
(3)找到鼠标坐标点集对应到GL窗口中的三维坐标点集;
(4)查找三维坐标集邻域,并标记每个邻域点;
(5)剔除重复点,将所有邻域点设置颜色标记并新建对象输出。

效果雏形图:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/sinat_24206709/article/details/78688682
46