我正在写变量半径(标准偏差)的高斯模糊,即图像的每个像素使用不同的内核进行卷积。计算高斯模糊的标准技术在这里不起作用:FFT,轴分离,重复盒模糊 - 他们都假设内核对于整个图像是相同的。现在可变半径高斯模糊,近似内核
,我试图使用以下方案来近似它:
具有分段常数函数f(x,y)的近似高斯核K(X,Y)由轴的一组N个定义的-aligned矩形řķ和系数αķ为:
F(X,Y)=Σ K = 1ñαķ·χřķ(X,Y)
令G(X,Y)是我们的图像,然后
∬ℝ K(X,Y)·G(X,Y)DXDY≈ ∬ℝ F(X,Y)·G(X,Y)DXDY =Σ K = 1ñαķ·∬řķ克(X,Y)DXDY
RHS上的积分是一个矩形上的简单积分,因此可以通过预计算整个图像的部分和来在恒定时间内计算。
结果算法运行在O(W·H·N)其中W和H是图像的尺寸,N是(AFAIK)与近似值的误差成反比。
其余部分是找到一个很好的近似函数f(x,y)。 如何在给定矩形数N(最小化误差)或给定误差(最小化矩形数)的情况下找到高斯的最佳逼近?
变量半径如何进入高斯内核的近似值?此外,你的卷积方程(模糊)看起来很奇怪:你的意思是写'G(x0,y0)=?K(x-x0,y-y0)?g(x,y)dxdy'?在任何情况下,您可以采取的另一种方法是对不同的内核执行多个卷积,然后以位置相关的方式在它们之间进行线性插值。 –
@Kipton:我假定内核以(0,0)为中心并具有固定的半径。可以在不改变相对误差率的情况下,对每个像素进行恒定时间的转换和缩放与其近似的一组矩形。 – ybungalobill
@Kipton:您的方法具有线性时间和空间复杂性,当将误差趋于零时变为二次方。 – ybungalobill