【发布时间】:2017-04-02 08:07:08
【问题描述】:
使用 PCL 估计点云中点的法线效果很好,但我在特定的云块处得到奇怪的法线方向翻转(见截图,法线是黄线)。当然,我可以遍历法线数组并对其进行更正,但也许有更好的方法可以直接使用 PCL 即时进行?使用面向视点的法线不是一种选择,因为表面是圆柱状的,因此法线最终会指向围绕该轴的所有方向。
这是正常估计的代码。基本上是官方教程中的sn-p:
pcl::NormalEstimationOMP<pcl::PointXYZ, pcl::Normal> n;
pcl::PointCloud<pcl::Normal>::Ptr normals(new pcl::PointCloud<pcl::Normal>);
pcl::search::KdTree<pcl::PointXYZ>::Ptr tree(new pcl::search::KdTree<pcl::PointXYZ>);
tree->setInputCloud(cloud_);
n.setInputCloud(cloud_);
n.setSearchMethod(tree);
n.setKSearch(10);
n.compute(*normals);
【问题讨论】:
-
嗨,Alexander,我也遇到了同样的问题,您能解决吗?
-
你好。并不真地。我最终在 OpenMesh 库的帮助下“手动”完成了它,无论如何我需要在网格上进行其他操作。
-
好的!我也会这样做。非常感谢
-
你能解释一下你使用 openmesh 库做了什么吗?如果您有一个不错的算法,那么 cmets 中的一些指针或自我回答会很好。
标签: orientation point-cloud-library point-clouds normals