import sys h, w = input().strip().split() h = int(h) w = int(w) img = [] for i in range(h): line = sys.stdin.readline().strip() line = list(map(int, line.split(' '))) img.append(line) kernel = [] m = int(input()) for i in range(m): line = sys.stdin.readline().strip() line = list(map(float, line.split(' '))) kernel.append(line) w_ = w - m + 1 h_ = h - m + 1 res = [] def conv(img, kernel, x, y, m): t = 0 for i in range(m): for j in range(m): t += img[i+x][j+y] * kernel[i][j] return int(min(255, t)) for i in range(h_): tmp = [] for j in range(w_): tmp.append(conv(img, kernel, i, j, m)) res.append(tmp) for i in res: i=[str(x) for x in i] print(' '.join(i))
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:卷积实现 python - Python技术站