gpt4 book ai didi

algorithm - 使用什么类型的平滑?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:41:42 25 4
gpt4 key购买 nike

不确定这在 SO 上是否有效,但我希望有人可以建议使用正确的算法。

我有以下原始数据。 enter image description here

在图像中您可以看到“步骤”。本质上我希望得到这些步骤,然后得到所有数据之间的移动平均值。在下图中,您可以看到移动平均线:

enter image description here

但是您会注意到,在“台阶”处,移动平均线降低了我希望保持高垂直梯度的梯度。

是否有任何平滑技术可以考虑大的垂直“偏移”,但平滑其他数据?

最佳答案

是的,我不得不对来自航天器的图像做类似的事情。

简单技术#1:使用宽度适中的中值滤波器 - 比如大约 5 个样本或 7 个样本。这提供了一个输出值,它是相应输入值的中值和它的几个两边的近邻。它将消除这些尖峰,并很好地保留台阶边缘。

中值滤波器在我所知道的所有数字运算工具包中都有提供,例如 Matlab、Python/Numpy、IDL 等,以及编译语言的库,例如 C++、Java(虽然没有想到具体名称现在……)

技巧 #2,可能不太好:使用 Savitzky-Golay 平滑滤波器。这是通过使用相应的输入样本和点的邻域(很像中值滤波器)在每个输出样本处有效地对数据进行最小二乘多项式拟合来实现的。 SG 平滑器以相当擅长保留峰值和尖锐过渡而著称。

SG 滤波器通常由大多数信号处理和数字运算包提供,但可能不如中值滤波器那么常见。

技术 #3,工作量最大,需要最多的经验和判断力:继续并使用更平滑的 - 移动箱平均,高斯,等等 - 但然后创建一个混合在原始之间的输出与平滑的数据。混合由您创建的新数据系列控制,从全原始(混合平滑的 0%)到全平滑(100%)不等。

要控制混合,首先要使用边缘检测器来检测跳跃。您可能希望首先对数据进行中值过滤以去除尖峰。然后扩大(图像处理术语中的扩张)或平滑和重新归一化边缘检测器的输出,然后翻转它,使其在跳跃处和附近给出 0.0,在其他地方给出 1.0。或许你想要平稳过渡加入他们。做到这一点是一门艺术,这取决于数据的使用方式——对我来说,通常是供人类查看的图像。如果进行不同的调整,自动化嵌入式控制系统可能会发挥最佳作用。

这项技术的主要优点是您可以插入任何您喜欢的平滑滤波器。它不会在混合控制值为零的情况下产生任何影响。主要缺点是跳跃,即由操纵的边缘检测器输出定义的小邻域,将包含噪声。

关于algorithm - 使用什么类型的平滑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13170305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com