У меня есть облако точки деревянного блока. Я нашел центр тяжести этого облака точек. Теперь я пытаюсь найти основные компоненты и ориентацию, используя библиотеку облаков точек. Ниже приведен код, который я попробовал. Поправьте меня, если вы ничего не поняли.Как найти основные компоненты и ориентацию облака точек с помощью облачной библиотеки точек
Eigen::Vector4f centroid;
Eigen::Matrix3f covariance_matrix;
// Extract the eigenvalues and eigenvectors
Eigen::Vector3f eigen_values;
Eigen::Matrix3f eigen_vectors;
pcl::compute3DCentroid(*cloud_filtered,cluster_indices,centroid);
// Compute the 3x3 covariance matrix
pcl::computeCovarianceMatrix (*cloud_filtered, centroid, covariance_matrix);
pcl::eigen33 (covariance_matrix, eigen_vectors, eigen_values);
std::cout << "centroid-x:"<<centroid[0]<<"centroid-y:"<<centroid[1]<<"centroid-z:"<<centroid[2]<<std::endl;
Все хорошо. Есть проблема? –
Я хочу найти ориентацию облака точек в cluster_indices. – RoboticsNovice
Собственный вектор, соответствующий наибольшему собственному значению, должен быть приблизительно ориентирован на максимальное распределение по объему объекта, которое, как я полагаю, является тем, что вы хотите. Есть ли другая форма, в которой вы хотели бы выразить эту ориентацию? –