math - 关于 dx > 1 的离散数值导数

标签 math opencv image-processing numerical-methods

如何为 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/

相关文章:

eclipse - 为什么 OpenCV 中与 CvSeq 相关的一切都如此困惑?

html - 高分辨率 CSS Sprite

c# - 数学函数消除负号

math - 从零开始开发 "Calendar"的想法

c++ - 是否有 constexpr 替代 modf

matlab - 如何将图像转换为字符段?

javascript - 检查坐标是否在扇区内

c++ - Xcode 7 和 openCV(无 Swift): Core. hpp header 必须编译为 C++

c++ - 如何使用openCV的SphericalWarper?

python - 在 openCV 中如何从 python 中的 opencv_createsamples 生成的矢量文件加载图像?