Нормальные оценки кривизны поля возвращающегося НАН

Я вычисляю нормали поверхности для организованного облака точек следующим образом:

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 для всех точек. Я что-то не так делаю в расчете?

0

Решение

Оказывается AVERAGE_3D_GRADIENT метод не вычисляет кривизну поверхности, необходимо использовать ne.COVARIANCE_MATRIX

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]