在平滑或过滤System.Drawing.Points列表时遇到问题

时间:2019-07-16 23:12:43

标签: c# .net system.drawing

我有一个System.Drawing.Points的集合(列表),这些对象随着对象的移动而绘制。可以将其视为随时间推移的鼠标坐标。

我正在尝试绘制或绘制运动历史的流畅线条。

问题是,数据偶尔会出现随机尖峰(高电平或低电平),因此我的行在大多数时间都是平滑的,但是如果我有这些尖峰,有时可能会锯齿。我不想精确地绘制出锯齿状的随机边缘,我想要的是更多的平均值,可以平滑或过滤掉极端的情况,并给我一条流畅的线条。

我想我不知道正确的搜索词。我确实看过线性回归,但这似乎太复杂了。

现在,我正在尝试使用Math.Net.Numerics和MovingWindowAverage,但是,它期望IEnumerable为double,但由于具有X和Y坐标,所以我具有Point。

我试图将所有的x坐标“拆分”为一个IEnumerable,将另一个的所有y坐标“拆分”为IEnumerable,然后将它们通过移动平均值进行馈送,但是当绘制一条线时返回的数据遍布整个地方。比以前更糟。我认为拆分并重新绘制不正确。此外,以这种方式进行操作确实很笨拙。

是否有一个简单的算法或库可以实现我想要的?如果我走了正确的路,什么是最好的分割x和y的方法,然后将它们在平均值绘制后重新组合在一起,而不会混淆点数?

谢谢!

0 个答案:

没有答案