高斯拉普拉斯
图像的高斯拉普拉斯(LoG)可以写成F
∇2(f* 克)= f* ∇2G
与高斯核和卷积。即,由高斯核平滑的图像的拉普拉斯与与高斯核的拉普拉斯卷积的图像相同。在2D情况下,该卷积可以进一步扩展为*G∗
F* ∇2G= f∗ (∂2∂X2G+ ∂2∂ÿ2G)= f* ∂2∂X2G+ f* ∂2∂ÿ2G
因此,可以将其计算为输入图像的两个卷积与高斯核的二阶导数的相加(在3D中,这是3个卷积,等等)。这很有趣,因为高斯核及其导数是可分离的。那是,
F(x ,y)* g(x ,y)= f(x ,y)∗ (g(x )* g(y)) = (f(x ,y)* g(x )) * g(y)
这意味着我们可以使用两个1D卷积来计算相同的事物,而不是2D卷积。这样可以节省大量计算。对于最小的可想像的高斯核,您每个方向都有5个样本。2D卷积需要25次乘法和加法,两个1D卷积需要10次。内核越大,或图像中的维数越大,这些计算节省就越重要。
因此,可以使用四个1D卷积来计算LoG。但是,LoG内核本身是不可分离的。
有一个近似值,首先将图像与高斯核卷积,然后使用有限差分实现,得到3x3核,中间为-4,在其四个边缘邻点为1。∇2
Ricker小波或Mexican hat算子与LoG相同,但要进行缩放和归一化。
高斯人的差异
图像的高斯(DoG)之差可以写成F
F* 克(1 )- ˚F* 克(2 )= f* (g(1 )- 摹(2 ))
因此,就像LoG一样,DoG可以看作是单个不可分离的2D卷积或两个可分离卷积的和(在这种情况下为差)。这样看来,与DoG相比,使用DoG似乎没有计算优势。但是,DoG是可调谐的带通滤波器,LoG不能以相同的方式进行调谐,应将其视为导数。DoG也会自然地出现在比例空间设置中,在此图像会以许多比例(具有不同sigma的高斯)进行过滤,后续比例之间的差异就是DoG。
DoG内核有一个可分离的近似值,尽管该近似值不是各向同性的,但可将计算成本降低一半,从而导致滤波器的旋转依赖性。
我曾经(亲自)展示过LoG和DoG的等效性,对于一个DoG,其中两个高斯核之间的sigma之差无限小(达到缩放比例)。我没有这个的记录,但是显示起来并不困难。
计算这些过滤器的其他形式
Laurent的答案提到了递归过滤,OP提到了Fourier域中的计算。这些概念适用于LoG和DoG。
的高斯及其衍生物可使用一种因果和反因果IIR滤波器来计算。因此,上面提到的所有一维卷积都可以在恒定时间内应用sigma。请注意,这仅对较大的sigma有效。
同样,可以在傅立叶域中计算任何卷积,因此DoG和LoG 2D内核都可以转换为傅立叶域(或在此处进行计算)并通过乘法应用。
结论
这两种方法的计算复杂度没有显着差异。我还没有找到使用DoG近似LoG的充分理由。