正常估计曲率场返回NAN

时间:2013-02-14 15:37:25

标签: c++ normals point-clouds point-cloud-library

我正在计算有组织点云的曲面法线,如下所示:

pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud = create_point_cloud_ptr(cap_depth, cap_rgb);

// estimate normals
pcl::PointCloud<pcl::Normal>::Ptr normals (new pcl::PointCloud<pcl::Normal>);

pcl::IntegralImageNormalEstimation<pcl::PointXYZRGB, pcl::Normal> ne;
ne.setNormalEstimationMethod (ne.AVERAGE_3D_GRADIENT);
ne.setMaxDepthChangeFactor(15);
ne.setNormalSmoothingSize(10.0f);
ne.setInputCloud(cloud);
ne.compute(*normals);

当我遍历法线时,所有点的曲率场都设置为NAN。我在计算中做错了吗?

1 个答案:

答案 0 :(得分:2)

原来AVERAGE_3D_GRADIENT方法无法计算曲面曲率,需要使用ne.COVARIANCE_MATRIX