假定Gx(i,j)=buffer[i*w+j]-buffer[i*w+j+1],那么Gx(i,j+1)-Gx(i,j)=?x
先求Gx(i,j+1),用(j+1)替换buffer[i*w+j]-buffer[i*w+j+1]中j,
所以Gx(i,j+1)=buffer[i*w+(j+1)]-buffer[i*w+(j+1)+1]
所以?x=Gx(i,j+1)-Gx(i,j)=buffer[i*w+(j+1)]-buffer[i*w+(j+1)+1]-Gx(i,j)
=buffer[i*w+j+1]-buffer[i*w+j+2]-buffer[i*w+j]+buffer[i*w+j+1]
=2*buffer[i*w+j+1]-buffer[i*w+j]-buffer[i*w+j+2]
同理Gy(i,j)=buffer[i*w+j]-buffer[(i+1)*w+j],那么Gx(i+1,j)-Gx(i,j)=?y
?y=Gx(i+1,j)-Gx(i,j)=2*buffer[(i+1)*w+j]-buffer[(i+2)*w+j]-buffer[i*w+j]
我们让
?x=2*buffer[i*w+j]-buffer[i*w+j-1]-buffer[i*w+j+1]
?y=2*buffer[(i)*w+j]-buffer[(i+1)*w+j]-buffer[(i-1)*w+j]
仍然是成立的,为什么?尝试解决他的证明(不难)。
那么?x+?y=??,我们以上写法简化一下,令buffer[i*w+j]=f(x,y)
则,2*buffer[i*w+j]-buffer[i*w+j-1]-buffer[i*w+j+1]=2*f(x,y)-f(x-1,y)-f(x+1,y)
2*buffer[(i)*w+j]-buffer[(i+1)*w+j]-buffer[(i-1)*w+j]=2*f(x,y)-f(x,y+1)-f(x,y-1)
那么,??=?x+?y=000000000-f(x,y-1)+0000000000+
-f(x-1,y)+4*f(x,y)-f(x+1,y)+
000000000-f(x,y+1)+000000000
好,只看系数,则是
这是什么,不就是拉普拉斯模板吗?而公式??=?x+?y不就是对图像像素的拉普拉斯模板运算吗?
那么为什么还有如下拉普拉斯模板?怎么得到的呢?
黄帝内经说,知其要,一言以蔽之,不知其要,流散无穷。