点云技术相关产学研社区

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

扫一扫,访问微社区

查看: 18613|回复: 17

用BoundaryEstimation类提取点云边缘点的问题

[复制链接]
发表于 2013-12-19 19:28:12 | 显示全部楼层 |阅读模式
本帖最后由 just_rookie 于 2013-12-20 20:39 编辑

RT,我用BoundaryEstimation提取点云的边缘点,但是得到边缘点为零,请问是什么原因?附图为我的点云图。请指教,谢谢!
部分代码:

// compute normals;
        pcl::search::Search<pcl::PointXYZ>::Ptr tree(new pcl::search::KdTree<pcl::PointXYZ>());
        pcl::PointCloud<pcl::Normal>::Ptr normals(new pcl::PointCloud<pcl::Normal>);
        pcl::NormalEstimation<pcl::PointXYZ,pcl::Normal> normal_est;
        normal_est.setSearchMethod(tree);
        normal_est.setInputCloud(cloud);
        normal_est.setKSearch(50);
        normal_est.compute(*normals);
        //normal_est.setViewPoint(0,0,0);


        //calculate boundary;
        pcl::PointCloud<pcl::Boundary> boundary;
        pcl::BoundaryEstimation<pcl::PointXYZ,pcl::Normal,pcl::Boundary> boundary_est;
        boundary_est.setInputCloud(cloud);
        boundary_est.setInputNormals(normals);
        boundary_est.setRadiusSearch(0.02);
        //boundary_est.setAngleThreshold(PI/4);
        boundary_est.setSearchMethod(pcl::search::KdTree<pcl::PointXYZ>::Ptr(new pcl::search::KdTree<pcl::PointXYZ>));
        boundary_est.compute(boundary);
回复

使用道具 举报

 楼主| 发表于 2013-12-19 19:30:32 | 显示全部楼层
我根据pcl user list里的回复(http://www.pcl-users.org/need-he ... tion-td3919525.html),
对坐标系进行了旋转,但是问题依然存在。点云是激光扫描得到的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-20 20:40:20 | 显示全部楼层
问题已经解决,谢谢关注!
回复 支持 反对

使用道具 举报

发表于 2013-12-20 22:04:38 | 显示全部楼层
just_rookie 发表于 2013-12-20 20:40
问题已经解决,谢谢关注!

楼主,想问下你是怎么解决的,能不能给大家分享一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-25 20:24:32 | 显示全部楼层
呼啸而去 发表于 2013-12-20 22:04
楼主,想问下你是怎么解决的,能不能给大家分享一下

嗯,你先计算一下点云间的平均距离,在根据这个距离去设置搜索的参数、
回复 支持 反对

使用道具 举报

发表于 2013-12-26 10:18:47 | 显示全部楼层
just_rookie 发表于 2013-12-25 20:24
嗯,你先计算一下点云间的平均距离,在根据这个距离去设置搜索的参数、 ...

谢谢分享,抱拳
回复 支持 反对

使用道具 举报

发表于 2013-12-31 12:02:32 | 显示全部楼层
附图看不到~~
回复 支持 反对

使用道具 举报

发表于 2013-12-31 13:21:55 | 显示全部楼层
楼主,可以共享下你获取边缘点的代码吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-2 21:39:17 | 显示全部楼层
李长城 发表于 2013-12-31 13:21
楼主,可以共享下你获取边缘点的代码吗?

核心代码在上面啊!
回复 支持 反对

使用道具 举报

发表于 2014-1-3 18:29:41 | 显示全部楼层
楼主您好,麻烦问下,boundary_est.setAngleThreshold(PI/4);这句代码在计算边缘时必须有?还是可有可无?
回复 支持 反对

使用道具 举报

本版积分规则

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

GMT+8, 2024-4-29 04:38 , Processed in 1.744637 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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