相隔很久,还是在处理的过程中遇见卷积,这个是必不可少的,于是这里就好好的看看实现过程,让印象更加的深刻。下面从四个方面来看:
- 1 卷积和相关的定义
- 2 一维相关的解释
- 3 二维卷积的解释
- 4 相关与卷积的联系
一、卷积与相关的定义
1.卷积定义:函数f(x)和h(x),其卷积运算用符号f(x)*h(x)表示,定义为如下积分
2.函数f(x)和h(x)的相关定义
一维实函数卷积的几何说明:
首先,在以N为横轴的图上画出f(N)和h(N),再将h(N)反转得到h(-N).h(-N)平移x值得到h[-(N-x)]=h(x-N) .f(N) 和h(x-N)相乘得到一新函数,此新函数图象与N轴之间围成的面积便是函数f(x)*h(x)在x点的数值.x值不同,h(-N)平移距离不同,而使f(x)*h(x)可能取不同值.
根据这种几何解释容易得到以下结论:若f(x)有非零值的范围是t1,h(x)有非零值的范围是t2,则f(x)*h(x)有非零值的范围为t1+t2.卷积使非零值范围扩大了.
图象大多是平面图象,用二维函数表示.信息光学中的卷积运算大多是二维函数的卷积,二维函数f(x,y)和h(x,y)的卷积表示为:
卷积运算图例
考虑两个矩形函数的卷积运算,从几何图形上看,就是将其中-个矩形函数绕纵轴翻转,然后再对另一个作平移,并计算两矩形函数的重叠面积,从而得到卷积的运算结果。显然,这个结果是平移距离x的函数。
二、一维相关的解释
想看卷积就要知道相关的过程,对于离散信号x(n) y(n),相关函数为
设有限长的序列,x(n)=[1,0.1,-1,0.1],y(n)=[0.1,1,0.1,-1],箭头所指位置表示n=0的序列值,箭头右边依次是n=1、2、3 ┉,箭头左边依次是n=-1、-2、-3 ┉。求这两个序列的线性相关函数。
(1)直接计算法
(2)图形法
分别画出x(n)y(n)以及一维的y(n)序列,将x(n)和y(n+m)两两序列相乘然后相加得到r(m)
三、二维卷积的解释
卷积实现,输出图像的像素值是输入图像对应像素及其邻域像素的线性加权,权重矩阵称为卷积窗。
图像为a =
2 1 3 1
1 2 1 2
2 1 3 2
1 3 1 2
核为b =
1 1 1
1 1 1
1 1 1
卷积为c =
6 10 10 7
9 16 16 12
10 15 17 11
7 11 12 8
把模板(n*n)放在矩阵上(中心对准要处理的元素),用模板的每个元素去乘矩阵中的的元素,累加和等于这个元素例如例子中的第二行第二个元素16= 1*2+1*1+1*3+1*1+1*2+1*1+1*2+1*1+1*2+1*1+1*3的计算,依次计算每个元素的值,如果矩阵的中心在边缘就要将原矩阵进行扩展,例如补0,或者直接规定模板的中心距离边缘(n-1)/2个单位以上。
四、相关与卷积的联系
在执行线性空间滤波时,经常会遇到两个概念相关和卷积,二者基本相似,在进行图像匹配是一个非常重要的方法。
相关是滤波器模板移过图像并计算计算每个位置乘积之和的处理,卷积的机理相似,但滤波器首先要旋转180度
相关的计算步骤:
(1)移动相关核的中心元素,使它位于输入图像待处理像素的正上方
(2)将输入图像的像素值作为权重,乘以相关核
(3)将上面各步得到的结果相加做为输出
卷积的计算步骤:
(1)卷积核绕自己的核心元素顺时针旋转180度
(2)移动卷积核的中心元素,使它位于输入图像待处理像素的正上方
(3)在旋转后的卷积核中,将输入图像的像素值作为权重相乘
(4)第三步各结果的和做为该输入像素对应的输出像素
超出边界时要补充像素,一般是添加0或者添加原始边界像素的值,可以看出他们的主要区别在于计算卷积的时候,卷积核要先做旋转,而计算相关过程中不需要旋转相关核。
C = conv2(..., SHAPE) returns a subsection of the 2-D
convolution with size specified by SHAPE:
'full' - (default) returns the full 2-D convolution,
'same' - returns the central part of the convolution
that is the same size as A.
'valid' - returns only those parts of the convolution
that are computed without the zero-padded edges.
size(C) = max([ma-max(0,mb-1),na-max(0,nb-1)],0).
http://www.cnblogs.com/libing64/archive/2011/12/13/2878738.html
http://www.cnblogs.com/sodf/p/3324611.html