图像识别基础之相关、卷积

     相隔很久,还是在处理的过程中遇见卷积,这个是必不可少的,于是这里就好好的看看实现过程,让印象更加的深刻。下面从四个方面来看:

  • 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)有非零值的范围是t1h(x)有非零值的范围是t2,f(x)*h(x)有非零值的范围为t1+t2.卷积使非零值范围扩大了.

   图象大多是平面图象,用二维函数表示.信息光学中的卷积运算大多是二维函数的卷积,二维函数f(xy)h(xy)的卷积表示为:  


卷积运算图例

   考虑两个矩形函数的卷积运算,从几何图形上看,就是将其中-个矩形函数绕纵轴翻转,然后再对另一个作平移,并计算两矩形函数的重叠面积,从而得到卷积的运算结果。显然,这个结果是平移距离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

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值