我是C ++和PCL的新手。我希望将指针的值保存在while循环中,并希望显示保存的指针。这是我的代码的一部分。请指导每次循环运行时如何在数组中保存“ coefficients-> values [0],coefficients-> values [1],coefficients-> values [2],coefficients-> values [3]”的值。 / p>
// While 20% of the original cloud is still there
while (cloud_filtered->points.size () > 0.20 * nr_points)
{
// Segment the largest planar component from the remaining cloud
seg.setInputCloud (cloud_filtered);
seg.segment (*inliers, *coefficients);
if (inliers->indices.size () == 0)
{
std::cerr << "Could not estimate a planar model for the given dataset." << std::endl;
break;
}
std::cerr << "Model coefficients: " << coefficients->values[0] << " "
<< coefficients->values[1] << " "
<< coefficients->values[2] << " "
<< coefficients->values[3] << std::endl;
}
答案 0 :(得分:2)
我假设您正在遵循this示例代码,因为您在问题中添加的代码段几乎相同。如果是这种情况,那么您可以在while循环之前声明一个std::vector<pcl::ModelCoefficients>
,然后像这样将系数压入
std::vector<pcl::ModelCoefficients> coeffs;
while(...){
...
coeffs.push_back(*coefficients);
}
还请查看pcl::ModelCoefficients
here的文档,该文档只不过是标头和浮点向量。请注意,在这种情况下,将coeffs
定义为共享指针的向量并将指针推入系数将不起作用,因为先前推入的系数将被seg.segment(*inliers, *coefficients);
覆盖。