从 std::vector of 3 到 pcl::PointCloud<PointXYZ>::Ptr?
from std::vector of 3 into a pcl::PointCloud<PointXYZ>::Ptr?
我有一个障碍物点云,因为我在我的二叉树中使用了向量的向量,我想将 3 个元素的 std::vector 中的值插入到 pcl::PointCloud::Ptr 对象中做聚类。
std::vector<std::vector<float> > points;
typename pcl::PointCloud<PointXYZ>::Ptr cluster(new pcl::PointCloud<PointT>);
// next line is not possible, but how do I insert the component of vector<float> into the x,y,z of struct PointXYZ
cluster->push_back(points[idx]);
很可能是
for (int j=0; j<points.size(); ++j) {
std::vector<float> &vec = points[j];
for (int i=0;i<vec.size();i+=3)
cluster->push_back(PointXYZ(vec[i], vec[i+1], vec[i+2]));
}
我假设内部 std::vector 中的每 3 个值是一个点。
for (int i=0; i<points.size(); ++i) {
if (points[i].size() != 3)
continue;
cluster->push_back(pcl::PointXYZ(points[i][0], points[i][1], points[i][2]));
}
我有一个障碍物点云,因为我在我的二叉树中使用了向量的向量,我想将 3 个元素的 std::vector 中的值插入到 pcl::PointCloud::Ptr 对象中做聚类。
std::vector<std::vector<float> > points;
typename pcl::PointCloud<PointXYZ>::Ptr cluster(new pcl::PointCloud<PointT>);
// next line is not possible, but how do I insert the component of vector<float> into the x,y,z of struct PointXYZ
cluster->push_back(points[idx]);
很可能是
for (int j=0; j<points.size(); ++j) {
std::vector<float> &vec = points[j];
for (int i=0;i<vec.size();i+=3)
cluster->push_back(PointXYZ(vec[i], vec[i+1], vec[i+2]));
}
我假设内部 std::vector
for (int i=0; i<points.size(); ++i) {
if (points[i].size() != 3)
continue;
cluster->push_back(pcl::PointXYZ(points[i][0], points[i][1], points[i][2]));
}