即如何验证
我们已经知道真正的LOG=(/*1/-2/)*exp(-0.5*/)
他们说,sigma*真正的LOG近似等于=(G(x,y,k*sigma)-G(x,y,sigma))*1/(sigma*(k-1))
他们说k=,所以第二个octave的尺度=2,即每一组开头的尺度是前一组倒数第三个的尺度的二倍。
k=1.26,sigma=1;y=0,x=0,1,1.8,2
//G(x,y,1.26)-G(x,y,1)*1/(1*(1.26-1))
x=0,G(x,y,1.26)-G(x,y,1)=0.1-0.15=-0.05,
x=1,G(x,y,1.26)-G(x,y,1)=0.073-0.096=-0.23
x=1.8,G(x,y,1.26)-G(x,y,1)=0.035-0.031=0.04
x=2,G(x,y,1.26)-G(x,y,1)=0.028-0.021=0.07
那么1*(1.26-1)*sigma*LOG=1*(1.26-1)*1*LOG=0.26*LOG=?
x=0,0.26*LOG=-0.26
x=1,0.26*LOG=0
x=1.8,0.26*LOG=0.105
x=2,0.26*LOG=0.16
我在程序中验证未果,怎么办?(从后面数学推导可以看出,程序中有bug,故结果不正常,是少了0.5*1/3.1416?)
那么只能对高斯函数针对sigma求导,我们求导很多了,这里省略中间验算过程,直接写求导结果
=exp(...)*1/(2*3.1416)*(1/)*(r*r/sigma-2*sigma)*(1/)=AA
真正的LOG=(/*1/-2/)*exp(-0.5*/)
=exp(...)*(1/)*(-2)*(1/)
回过头去看,我们求真正的LOG使用的是exp(...),实际应该是1/(2*3.1416)*(1/)*exp(...)
在求导真正的LOG时,(1/)是常数,这是重点噢!
那么真正的LOG=1/(2*3.1416)*(1/)*真正的LOG
=exp(...)*(1/)*(-2)*(1/)*1/(2*3.1416)*(1/)
=exp(...)*(1/)*1/(2*3.1416)*(/-2)*(1/)
再对比AA=exp(...)*1/(2*3.1416)*(1/)*(/sigma-2*sigma)*(1/)
固有,真正的LOG*sigma(拉普拉斯高斯函数)=AA(AA是高斯函数对sigma求导数)
即得到了证明,ok!202010021444