2

Я хочу образец кода, который может получить ковариационную матрицу из данных облачных точек с помощью PCL.Как получить матрицу ковариации из данных точечного облака с помощью библиотеки 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); 
+0

Я извиняюсь за мой неясным вопрос. на самом деле моя проблема заключается в том, что у меня есть данные облачных точек, и я хочу вычислить матрицу ковариации из этих данных. Я новый студент крупного компьютерного видения, и я не знаю, как это получить, поэтому я задаю этот вопрос, чтобы получить какое-то направление от вас, ребята. Я снова сожалею о своем вопросе. – user3083514

+0

Я смотрю в документации PCL, и я нашел этот код для оценки ковариации: http://pointclouds.org/documentation/tutorials/normal_estimation.php, но я не знаю, как начать с него, например, какой файл заголовка я должен включить в код и т. д. – user3083514

+0

Я думаю, вам нужно начать с более ранних учебников: http://pointclouds.org/documentation/tutorials/ –

ответ

2

Это прямо вперед, но я думаю, вам нужно больше читать Documentations/учебники :)

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);