如何为 d/d(n*x) 运算符生成模板?
我正在编写一个需要计算图像中线导数的程序。如果我们想计算关于 d/dx 的最简单的导数近似,我们可以运行以下操作:
diff[x] = -1.0 * image[x] + image[x+1]
如果我想要更精确地计算导数,我可以增加模板的大小,并可能重新计算为:
diff[x] = -3./2 * image[x] + 2*image[x+1] - 1./2 * image[x+2]
我一直在使用有限差分法来获得这些系数。
现在假设我想对 d/d(3*x) 求导,我可以像这样简单地拉伸(stretch)原始模板:
diff[x] = -1.0 * image[x] + image[x+3]
但是,这里我没有使用来自 image[x+1] 和 image[x+2] 的信息,因此可以大大改进导数近似。如何生成将使用此信息并因此更准确的模板?
最佳答案
根据我对您的问题的理解,我建议以所需的分辨率(例如除以 3)生成二次采样图像,然后应用您原来的导数计算方法。二次采样过程应该通过首先在图像上应用低通滤波器(例如使用框或高斯模糊)来进行适当的抗锯齿。
关于math - 关于 dx > 1 的离散数值导数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15337480/