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的第一行第一列的結(jié)果為: 0*1 + 0*0 + 0*1 + 0*2 + 1*1 + 2*1 + 0*0 + 1*0 + 2*0 = 3
……
ans的第二行第二列的結(jié)果為: 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