如何使用PCL库从点云数据中获得协方差矩阵?

时间:2013-12-09 15:59:46

标签: computer-vision covariance point-cloud-library point-clouds

我想要一个示例代码,可以使用PCL从点云数据中获取协方差矩阵。

我看了PCL文档,发现这个代码来计算协方差:

// Placeholder for the 3x3 covariance matrix at each surface patch
Eigen::Matrix3f covariance_matrix;

// 16-bytes aligned placeholder for the XYZ centroid of a surface patch
Eigen::Vector4f xyz_centroid;

// Estimate the XYZ centroid
compute3DCentroid (cloud, xyz_centroid);

// Compute the 3x3 covariance matrix
computeCovarianceMatrix (cloud, xyz_centroid, covariance_matrix); 

1 个答案:

答案 0 :(得分:2)

这是直截了当的,但我想你需要更多阅读文档/教程:)

1-加载PCD文件,例如:

pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ> ());
pcl::io::loadPCDFile("c:\path\pcdfile.pcd",*cloud)

2-计算质心:

Eigen::Vector4f xyz_centroid;
compute3DCentroid (cloud, xyz_centroid);

3-计算协方差

Eigen::Matrix3f covariance_matrix;
computeCovarianceMatrix (cloud, xyz_centroid, covariance_matrix);