Я пытаюсь создать функцию для вейвлета мексиканской шляпы, которая позволяет изменять размер выходного файла (3x3, 5x5, 15x15 и т. Д.). Приведенный ниже код работает только (получает симметричную форму) для входа 5x5, но если он попытается получить выход 15x15 (d = 15), результат не будет центрировать самое высокое значение в середине.Выход симметричной матрицы с переменным размером
a = np.empty([5, 5])
def mex(array):
h = np.empty_like(array, dtype=np.float)
print "Say the filter size (d)"
d = int(raw_input("> "))
for line in range(array.shape[0]):
for col in range(array.shape[1]):
x = col - (d - 1)/2
y = (d - 1)/2 - line
value = 0
value = (1 - x**2 - y**2) * math.exp(-((x**2)+(y**2))/2)
h[line, col] = value
print h
return h
b = mex(a)
И это результат для 15x15:
Спасибо за любую помощь! :)
Почему выход вашего корпуса 15 x 15 всего 5 x 5? (Clue: первая строка вашей mex-функции). – strubbly
Да. Это была проблема. Я изменил его сейчас и работает. :) – Litwos