DM中计算differential/derivative的函数

The function to calculate differential/derivative in DM

我记得这是一个计算 differential/derivative 的函数,用于 DM 版本中的线图,它看起来像过程-非线性滤波器-导数。但我不记得哪个版本有这个功能,有什么建议吗?

UI 光谱过滤功能位于 Spectrum 菜单中:

从 GMS 3 开始,此功能是免费软件的一部分,之前它是 Spectroscopy 许可证(任何)的一部分。 该菜单仅适用于 spectra 的线路配置文件,需要时将使用 Convert Data To 菜单。

与所有 "menu" 命令一样,您可以使用 ChooseMenuItem 命令访问它们,如:

GetFrontImage().SelectImage() // Make sure the image window is selected, or the menu is disabled if the script-window is frontmost!
ChooseMenuItem("Spectrum","Numerical Filters","First derivative")

此菜单背后的数学函数也可用作(非官方、未记录的)脚本命令。他们不使用首选项而是直接使用参数,使用未校准的 'channel' 比例。 所以你也可以使用:

image src := GetFrontImage()
number chWidth = 5  // The values matching the settings
number chDelta = 1  // The values matching the settings
number chShift = trunc((chWidth + chDelta)/2 + 0.5)
number norm = chWidth + chDelta 
image fDev := src.FDeriv_Spectrum( chWidth, chShift, norm )
fDev.ShowImage()

请注意,不能保证命令 FDeriv_Spectrum 会在 GMS 的未来版本中继续使用(这不是官方支持的命令。)


最后,一阶导数的数学运算非常简单,因此您可以使用 offset 等纯 DM 脚本命令和算术运算符重新创建函数。 一个简单的、非平滑的 1 通道导数就是:

image src := GetFrontImage()
image fdev := src - src.offset(-1,0)
fdev.ShowImage()