教材上说二维高斯平滑函数如下:
h(x,y)=-exp(-0.5*(+
)/
)
令+
=
,则h(r)=-exp(-0.5*(
)/
)
上式对r求导数,=(-0.5/)*-exp(-0.5*(
)/
)*
=r/*exp(-0.5*(
)/
)
那么r的二阶导数=1/*【
*exp(-0.5*(
)/
)+r*exp(-0.5*(
)/
)*(-0.5/
)*
】
=1/*【1-
/
】exp(-0.5*(
)/
)
=-(/
*1/
-1/
)*exp(-0.5*(
)/
)
教材上说,用最后这个公式来求拉普拉斯的值,如图a
我又求了h(r)=exp(-0.5*()/
)去掉负号的r的二阶导数如图b
=(/
*1/
-1/
)*exp(-0.5*(
)/
)(答案少了一个负号)
最后我发现这不是LOG,因为用过拉普拉斯的人都知道:
lapulas=+
=DOG
好,我们先求,分两步,
第一,求一阶导数,=exp(-0.5*(+
)/
)*
*(-0.5)/
=exp(-0.5*(+
)/
)*2*x*(-0.5)/
=-exp(-0.5*(+
)/
)*x/
第二,在上式基础上,求x二阶导数
=-1/*【exp(-0.5*(
+
)/
)*
+exp(-0.5*(
+
)/
)*(-0.5/
)*
*x】
=-1/*exp(-0.5*(
+
)/
)【1-
/
】
=exp(-0.5*(+
)/
)(
/
*1/
-1/
)
同理,=-1/
*exp(-0.5*(
+
)/
)【1-
/
】
=exp(-0.5*(+
)/
)(
/
*1/
-1/
)
所以lapulas=+
=exp(-0.5*(+
)/
)*【
/
*1/
-1/
+
/
*1/
-1/
】
=exp(-0.5*(+
)/
)*【(
+
)/
*1/
-2/
】
好,令+
=
,则
=(/
*1/
-2/
)*exp(-0.5*
/
)【这才是真正的LOG函数】
这是最终答案,对比上面的-LOG,图b
(/
*1/
-1/
)*exp(-0.5*(
)/
)
看到没有,系数不同,也就是说,少了一个-1/*exp(-0.5*(
)/
)
这个是粗略估计,有兴趣的可以编程测试一下,立马见分晓!还是计算机好啊!我们前面有求高斯模板的程序,改动一下,就ok了!
另外,他们说LOG和DOG(差分高斯函数)关系,一直不知怎么验证,可以用计算机强大的计算力啊!不是吗?(骑驴找驴,这个驴真好用!)
即*DOG*(k-1)=G(x,y,k*sigma)-G(x,y,sigma)
AI(哎,我哩个去)!支持向量机都程序化了,SIFT还没程序化,可见SIFT算法的复杂度,人们都说他很牛X!的确很牛叉,复杂度很高,显然效率很低,理论横扫千军,应用自己斟酌!(AI(哎哎,我哩个去)!我到底要不要程序化实现它?艰难的选择!试试看吧!)