Cross-correlation
图片最易于说明问题,如下,假设我们有一张image和一个filter
我们对图像中的蓝色区域进行Cross-correlation
那么在点E,也就是
上面这个式子又臭又长,我们把它简化下并适用与所有情况,即
,漂亮多了,注意求和时loop的顺序
(k表示neighbor数,如上k=1,h[u,v]表示filter的权重)
你可能觉得这好像有点熟悉,不就是卷积吗,其实卷积和它还是有点区别的
Convolution
先看公式 ,就改了个符号有什么区别呢
我们还是用上面那幅图,我们记得cross-correlation的loop顺序是从左到右,从上到下,
而convolution是从右到左,从下到上,即 那么这就相当于将‘filter翻转’了,
然后进行cross-correlation运算,即
可是我们为什么要这么做呢,有什么意义呢,下面让我们来看下
区别
考虑,一张图如下,我们进行cross-correlation,得到的结果如下
如果换成真实点的图
我们看到得到的结果就像filter,只不过翻转了下
现在我们考虑convolution,它相当于将filter翻转了一次再进行cross-correlation,那再加上上面的这次翻转就是两次,也就不变了
于是convolution就有了下面的性质
Identity:E=[...0,0,1,0,0...],F*E=F(你可以想下cross-correlation行不行)
更不用说交换律结合律等
那么什么时候convolution和cross-correlation是一样的呢?
当filter关于x轴y轴对称时,通常的Average filter和Gaussian filter都是,两者相同
OK,就到这里