数学基础之高斯核函数
高斯核函数是一种应用广泛的核函数:
其中h为bandwidth 带宽,不同带宽的核函数形式也不一样
高斯核示例
由上图可以看到,横坐标指的是两变量之间的距离。距离越近(接近于0)则函数值越大,否则越小。h越大,相同距离的情况下 函数值会越小。因此我们可以选取适当的h值,得到满足上述要求的那种权重(两变量距离越近,得到权重越大)
New(x) = 1/(√(2*π)*h)*e^(-x^2/2*h^2) : h为带宽
高斯模糊可用来处理边缘
高斯函数的可分离性:mxn=>[mx1]x[1xn]
使用二维矩阵变换得到的效果可通过在水平方向进行一维高斯矩阵变换加竖直方向的一维高斯矩阵变换得到。
原计算量O(mxnxMxN)
现计算量O(nxMxN)+O(mxMxN)
m,n为高斯函数的维数,两次一维的高斯卷积会消除二维高斯矩阵所产生的边缘,超出图像边缘的虚框不做卷积。
DoG(Difference of Gaussian)
LoG(Laplace of Gaussian)
高斯养分函数:G(x,y,kσ)-G(x,y,σ)~~(k-1)σ^2Δ^G (高斯拉普拉斯函数)
参考代码:
def calc_gaussian(x,h=1): molecule = x*x demominator = 2*h*h left = 1/(math.sqrt(2*math.pi)*h) return left * math.exp(-molecule/demominator )
意义: Meanshift 中引入核函数
随着样本与被偏移点的距离不同,其偏移量对均值偏移向量的贡献也不同。
人生,从没有一劳永逸 想要变强,只有不停奔跑