Как мне дополнить значения в массиве, чтобы я получил это? - PullRequest
0 голосов
/ 10 декабря 2018

enter image description here

Я пытаюсь получить большое изображение из меньшего (слева).Это ядро ​​15х15, и мне нужно получить большое изображение.Как мне вставить значения в массив, чтобы получить большое изображение?Я новичок.Объяснение будет оценено.

1 Ответ

0 голосов
/ 10 декабря 2018

Чтобы выполнить это преобразование, вы должны сначала дополнить изображение , а затем использовать 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.

...