void smooth(std::vector<std::vector<double>>& centerLine, std::vector<std::vector<double>>& smoothedCenterLine)
{
smoothedCenterLine.resize(centerLine.size());
int step = 2;
for (int i = 0; i < centerLine.size(); i++)
{
std::vector<double> val = {0, 0, 0};
for (int m = i - step; m <= (i + step); m++)
{
int index = m;
if (index < 0)
index = 0;
else if (index > (centerLine.size() - 1))
index = centerLine.size() - 1;
for (int n = 0; n < 3; n++)
{
val[n] += centerLine[index][n];
}
}
for (int n = 0; n < 3; n++)
{
val[n] /= (2 * step + 1);
}
smoothedCenterLine[i] = val;
}
}
平滑曲线(基于均值)
最新推荐文章于 2023-12-22 20:36:35 发布
该段代码实现了一个名为`smooth`的函数,用于对三维数据集进行平滑处理。它采用滑动平均法,通过设定步长为2,遍历输入的`centerLine`数据,对每个位置的元素与周围2*step+1个元素求平均值,得到平滑后的`smoothedCenterLine`。这种方法有助于减少数据中的噪声并保持数据的整体趋势。
1万+

被折叠的 条评论
为什么被折叠?



