我必须将层数据转换为垫子数据。为此,我使用了 pcl 的 plyreader 并将其转换为点云,现在我的下一步是将其从点云转换为 mat 数据。我猜我从 plyreader 获得的点云是杂乱无章的。我一直在尝试提取点云的 xyz 值,然后将其复制到数据中。
pcl::PointCloud::Ptr 云(新 pcl::PointCloud);// 创建一个新的点云 (POINTXYZ)
pcl::PLYReader reader;
reader.read(filename,*cloud); // read the ply file
cv::Mat output;
//...
output = cv::Mat(1,cloud->points.size(),CV_32FC3);
for(size_t i=0; i<cloud->points.size();++i)
{
int m = cloud->points[i].x;
int n = cloud->points[i].y;
int l = cloud->points[i].z;
float x0;
float x1;
float x2;
output.at<cv::Vec3f>(x0,x1,x2)= cv::Vec3f(m,n,l);
}
我知道这是错误的。我发现了一篇关于此的帖子,但那是针对有组织的云链接在这里 -->
访问【点云转垫】
我是这个领域的新手。如果有人知道或可以提供帮助!!!
提前致谢