PS:请使用0来补全原矩阵,(防止python引用框架答题答题)不要使用边缘拷贝的方式
如果你不知道怎么求卷积,这里有一个举例:
给定一个3*3的原始矩阵h
h = [ 1 , 2 , 3]
[ 1 , 1 , 1]
[ 0 , 1 , 2]
给定一个3*3的卷积核v
v = [ 1 , 0 , 1]
[ 2 , 1 , 1]
[ 0 , 0 , 0]
那么卷积运算 h * v = ans ,ans为卷积运算的输出矩阵
对于每一个ans而言有 ans [i,j] = sum( v[a,b]*h[i-a,j-b] )
ans的第一行第一列的结果为: 0*1 + 0*0 + 0*1 + 0*2 + 1*1 + 2*1 + 0*0 + 1*0 + 2*0 = 3
……
ans的第二行第二列的结果为: 1*1 + 2*0 + 3*1 + 1*2 + 1*1 + 1*1 + 0*0 + 1*0 + 2*0 = 8
……
因此,卷积后的输出矩阵为:
ans=[3 , 7 , 7]
[4 , 8 , 5]
[2 , 5 , 5]
4 4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 1 0 0 0 -1 -2 -1
-16 -24 -28 -23 -24 -32 -32 -24 -24 -32 -32 -24 28 40 44 35