如何填充数组中的值以便得到它?

How do I pad values in the array so that I get this?

我正在尝试从较小的图像(左侧)获取大图像。 这是 15x15 内核,我需要获取大图像。如何将值填充到数组中以便获得大图像? 我是新手。解释将不胜感激。

要完成这个变换,你要先pad the image, and then use ifftshift把原点移到左上角:

import numpy as np

K = np.zeros((15,15))
K[7,7] = 1        # not exactly the 15x15 kernel on the left, but similar
sz = (256, 256)   # the output sizes
after_x = (sz[0] - K.shape[0])//2
before_x = sz[0] - K.shape[0] - after_x
after_y = (sz[1] - K.shape[1])//2
before_y = sz[1] - K.shape[1] - after_y
K = np.pad(K, ((before_x, after_x), (before_y, after_y)), 'constant')
K = np.fft.ifftshift(K)

请注意,此处的焊盘尺寸经过精心选择,以保持原点的正确位置,这在过滤中很重要。对于奇数大小的内核,原点位于中间像素。对于一个偶数大小的内核,它没有恰好位于中间的像素,原点是从真实中心向右下方的像素。在这两种情况下,这个位置都是使用 K.shape // 2.

计算的