先来几张图认识什么是一维数组卷积:
卷积的应用,图像处理很多地方都会用到卷积运算,具体用在哪方面我也不知道,坐等老师讲解,百度:图像中滤波、均值滤波、锐化等都是在空间域里进行卷积,也就是二维卷积
进入正题,一维数组卷积,用一个例子讲解。
数组 f = [ 0, 1, 2, 3, 4 ] ,g = [0, 1, 2]
设数组h 为 f 和 g 卷积后的结果,则 数组的长度为 len( f ) + len ( g ) – 1 = 7
如下图所示,
可以得出:
Len(h) = Len(f) + Len(g) - 1
实现此函数
定义函数 def convolution( f , g ) 为实现数组f 与数组 g的卷积,并将结果数组h返回
def convolution ( f, g):
#第一步创建并初始化结果数组h
#使用numpy.zeros( num )函数,其功能主要创建一个长度为num的数组,并将数组数据初始化为0
h = numpy.zeros( len(f) + len(g) – 1) #初始化一个长度为 f和g数组的长度之和-1
#实现卷积运算,我们将其分为三部分:
#实现卷积运算,我们将其分为三部分:
#第一部分为数组g刚开始进入数组f的过程
#第二部分为数组g在数组f中
#第三部分为数组g出数组f的过程