曲线平滑问题
假设现在有10个点(本船定时采样的航迹,假设持续右转)。由于误差,根据相邻点算出来的航向和速度(九个)不够平滑。请问有什么算法能让航向航速值平滑一点?也就是说,根据前面的点,怎么修正最后两点得到的航向航速值?
[解决办法]
样条插值
[解决办法]
使用线形内插值先将原来坐标点数量增加
然后再使用均值模糊的算法就可以得到光滑的曲线了
比如插值量为5倍,再按照3点均值模糊
[解决办法]
第一点和最后一点不变,中间2-9点采用与前后取平均的方式。
即
b(0)=a(0)
for i = 1 to 8
b(i)=(a(i-1)+a(i)+a(i+1))/3
next
b(9)=a(9)
然后再画出来
[解决办法]
低通滤波用高斯核
//core = 1,2,4,2,1
for(i = 0; i < 10; i++)
{
dstData[i] = (srcData[i-2]*1 + srcData[i-1]*2 +
srcData[i]*4 +
srcData[i+1]*2 + srcData[i+2]*1)/5
}
考虑一下数据边界
可以根椐需要调整核
楼上方法也可