计算数字图像二阶偏导数的内核

信息处理 图片 衍生物 核心
2022-02-10 10:26:53

我正在处理图像堆栈,我需要计算它的二阶偏导数。

我已经知道如何使用 Finite Cameron Taylor - Difference Coefficients Calculator 计算x 和 y 轴上的导数

因此,例如要计算 x 轴上的五点二阶导数,我们有如下公式:

所以我已经知道如何计算 x 和 y 轴上的导数,但我还需要获得如何计算一阶和二阶偏导数的公式f(xy)f(xy). 我知道我可以先在 x 轴上简单地计算导数,然后在 y 轴上计算,但我想获得使用图像中的 x 和 y 像素来计算的简化公式f(xy)/f(xy).

谁能解释我如何获得它们?

更新:我在网上某处找到了二阶公式f(xy)看起来像这样的图像的导数: (inX[2]-1*inX[0]+inY[2]-1*inY[0])/4;
还想解释它是否正确,以及它是如何获得的

1个回答

您的五点导数内核是一维内核。沿 x 轴应用它给出 x 的偏导数,沿 y 轴应用它给出 y 的偏导数。

2xy导数需要一个 2D 方形内核。通过应用两个一阶偏导数来计算它更有效。

2xyf=(xy)f=x(yf)

自从xf是一个卷积,

xf=kxf

我们可以把前面的方程写成

2xyf=x(yf)=kx(kyf)=(kxky)f

所以我们可以说你正在寻找的二维方形卷积核是kxky(和kx计算 x 导数的内核和ky计算 y 导数的那个)。请注意,如果您将 1D 内核视为向量,则此卷积等效于两个向量的外积。

然而,计算一个 5x5 内核的卷积(每个像素 25 个乘法和加法)比计算两个 5x1 和 1x5 内核的卷积(每个像素 10 次乘法和加法)更昂贵。我会依次计算两个一阶导数。