Я слежу за учебником http://pointclouds.org/documentation/tutorials/pcl_visualizer.php#pcl-visualizer и могу получить простой просмотрщик.Eigen with PointCloud (PCL)
Я просмотрел документацию и нашел функцию getMatrixXfMap
, которая возвращает Eigen::MatrixXf
от PointCloud
.
// Get Eigen matrix
Eigen::MatrixXf M = basic_cloud_ptr->getMatrixXfMap();
cout << "(Eigen) #row :" << M.rows() << endl;
cout << "(Eigen) #col :" << M.cols() << endl;
Следующие обрабатывают M
(в основном повороты, переводы и некоторые другие преобразования). Я как можно установить M
в PointCloud
эффективно. Или это то, что мне нужно pushback()
по одному пункту за раз?
Просто используйте 'Eigen :: Matrix4f trans;' Установите матрицу по своему усмотрению. 'pcl :: transformPointCloud (* beforeTransCloud, * afterTransCloud, trans)' – Deepfreeze
Что делать, если мои манипуляции не так просты, как линейное преобразование? Как я могу получить облако точек в качестве матрицы для управления? – mkuse
Затем используйте push_back или более эффективно используйте 'cloud-> resize', а затем за точку' cloud-> points [i] .x = ... ' – Deepfreeze