点云技术相关产学研社区

 找回密码
 立即注册加入PCL中国点云技术相关产学研社区

扫一扫,访问微社区

查看: 14870|回复: 10

超体聚类+LCCP分割后点云中心提取

[复制链接]
发表于 2017-2-21 09:17:54 | 显示全部楼层 |阅读模式
大家好! 最近利用超体聚类+LCCP进行点云分割,效果如下图。
希望对分割后的各个模块进行中心提取,苦于没有想法。
想用Compute3DCentroid()进行计算,但是貌似分割后找不到相应的点云,来放入括号内。
希望前辈指点,为晚辈指明方向,十分感谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册加入PCL中国点云技术相关产学研社区

x
回复

使用道具 举报

发表于 2017-2-21 10:19:38 | 显示全部楼层
你分割后的每个聚类只保存了原始点云中的索引下标,来标示吧。
你可以用这些下标,通过这个类
  1. pcl::ExtractIndices<PointType> eifilter (true); // Initializing with true will allow us to extract the removed indices
  2. eifilter.setInputCloud (cloud_in);
  3. eifilter.setIndices (indices_in);
  4. eifilter.filter (*cloud_out);
  5. // The resulting cloud_out contains all points of cloud_in that are indexed by indices_in
  6. indices_rem = eifilter.getRemovedIndices ();
  7. // The indices_rem array indexes all points of cloud_in that are not indexed by indices_in
  8. eifilter.setNegative (true);
  9. eifilter.filter (*indices_out);
  10. // Alternatively: the indices_out array is identical to indices_rem
  11. eifilter.setNegative (false);
  12. eifilter.setUserFilterValue (1337.0);
  13. eifilter.filterDirectly (cloud_in);
  14. // This will directly modify cloud_in instead of creating a copy of the cloud
  15. // It will overwrite all fields of the filtered points by the user value: 1337
复制代码
回复 支持 反对

使用道具 举报

发表于 2017-2-21 10:26:32 | 显示全部楼层
SupervoxelClustering 和 LCCPSegmentation联合分割的效果怎么样,适合那些类型的应用场景。。
一直没测试过,如果你测试了,可以分享下,谢谢!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-21 15:24:07 | 显示全部楼层
我初步学习PCL,SupervoxelClustering+LCCPSegmentation联合分割也是刚调试出来。自己进行了一些测试,感觉简单的场景效果还可以,但是杂乱的场景还需要改进。我看了大牛Thomas的论文,里面说:联合分割后,进行B-spline和refinement可以达到理想的效果。但小弟才疏学浅,仍未实现,还望前辈指点。以下是效果图和论文里的图片。论文的题目是:Segmentation of Depth Data in Piece-wise
Smooth Parametric Surfaces

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册加入PCL中国点云技术相关产学研社区

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-21 15:25:12 | 显示全部楼层
mypcl 发表于 2017-2-21 10:26
SupervoxelClustering 和 LCCPSegmentation联合分割的效果怎么样,适合那些类型的应用场景。。
一直没测试 ...

由于评论回复不能直接付图,我把回答写于此条回复下面。前辈查收
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-21 16:07:42 | 显示全部楼层
mypcl 发表于 2017-2-21 10:19
你分割后的每个聚类只保存了原始点云中的索引下标,来标示吧。
你可以用这些下标,通过这个类 ...

十分感谢指点!但是不知道这段代码中的indices来自哪里。LCCP分割后,哪些参数是这个indices。以前用欧式聚类,可以ec.extract(indices); 但是lccp就不会了,请前辈指点迷津。
回复 支持 反对

使用道具 举报

发表于 2017-2-21 17:12:51 | 显示全部楼层
WilliamChan 发表于 2017-2-21 16:07
十分感谢指点!但是不知道这段代码中的indices来自哪里。LCCP分割后,哪些参数是这个indices。以前用欧式 ...

我也不是什么前辈,用pcl比较多而已。
我没用过LCCP,估计就没有现成的输出为indexs的形式了。
不过刚才看了下api的文档,感觉这个函数是不是就可以输出分割好的点云呢
void pcl::LCCPSegmentation< PointT >::relabelCloud        (        pcl::PointCloud< pcl::PointXYZL > &         labeled_cloud_arg        )。
另外你可视化带label的点云数据怎么来的。得到这些点云后,估计你需要手动根据label的信息来构造
Compute3DCentroid的输入了。
祝好运
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-21 17:55:08 | 显示全部楼层
mypcl 发表于 2017-2-21 17:12
我也不是什么前辈,用pcl比较多而已。
我没用过LCCP,估计就没有现成的输出为indexs的形式了。
不过刚才 ...

谢谢!
void pcl::LCCPSegmentation< PointT >::relabelCloud        (        pcl::PointCloud< pcl::PointXYZL > &         labeled_cloud_arg        )函数确实是输出分割好的点云。
我的可视化点云就是里面的labeled_cloud_arg。但用这个点云去Compute3DCentroid得到的是整个点云中心,而不是分割后的各个颜色不一的点云中心。仍在研究中,谢谢你提供的信息!
回复 支持 反对

使用道具 举报

发表于 2017-4-24 22:08:51 | 显示全部楼层
小白求实现代码
回复 支持 反对

使用道具 举报

发表于 2017-11-15 00:46:53 | 显示全部楼层
WilliamChan 发表于 2017-2-21 15:24
我初步学习PCL,SupervoxelClustering+LCCPSegmentation联合分割也是刚调试出来。自己进行了一些测试,感觉 ...

你好  可以请问一个问题么  方便加一下微信么   y521572
回复 支持 反对

使用道具 举报

本版积分规则

QQ|小黑屋|点云技术相关产学研社区 ( 陕ICP备13001629号 )

GMT+8, 2024-5-1 00:39 , Processed in 6.531827 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表