改下代码使得切片方向设为自定义pclPointXYZRGB minPt maxPt; pclgetMinMax3Dm_cloud minPt maxPt; pclconsoleTicToc time; timetic; stdvectorintidx; 循环切片次数少于点的个数 切叶片 for int i = 0; i m_cloud-size; ++i double maxY = -025
可以通过修改切片方向的条件来实现自定义切片方向。在原始代码中,切片方向是x轴方向,可以将切片方向改为y轴方向。修改后的代码如下:
pcl::PointXYZRGB minPt, maxPt;
pcl::getMinMax3D(*m_cloud, minPt, maxPt);
pcl::console::TicToc time;
time.tic();
std::vector<int>idx;
//循环切片,次数少于点的个数
//切叶片
for (int i = 0; i < m_cloud->size(); ++i)
{
//double maxX = 0.049;
double minX = -0.001;
if (m_cloud->points[i].x >= minX && m_cloud->points[i].x <= maxPt.x && (m_cloud->points[i].y <= -0.001 || m_cloud->points[i].y >= 0.049))
{
int index = floor((m_cloud->points[i].y - minPt.y) / m_dPlatform);
float sliceMin = minPt.y + index * m_dPlatform;
if ((m_cloud->points[i].y >= sliceMin) && (m_cloud->points[i].y < sliceMin + m_Delta))
{
idx.push_back(i);
}
}
}
在修改后的代码中,切片的方向由x轴改为了y轴。切片的条件也进行了相应的修改,判断点的y坐标是否在切片的范围内,并且判断点的x坐标是否在切片的两侧。切片的索引计算也进行了相应的修改,使用点的y坐标进行计算,并根据切片的间距和最小y坐标进行计算。最后将满足条件的点的索引添加到idx向量中。
原文地址: http://www.cveoy.top/t/topic/iYAd 著作权归作者所有。请勿转载和采集!