J'essaye de créer une fonction pour l'ondelette Hat mexicaine, qui permet une taille de sortie variable (3x3, 5x5, 15x15, etc.). Le code ci-dessous ne fonctionne que (obtient une forme symétrique) pour une entrée 5x5, mais s'il essaie d'obtenir une sortie 15x15 (d = 15), le résultat ne centre pas la valeur la plus élevée au milieu.Sortie matricielle symétrique à taille variable
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)
Ceci est le résultat pour l'entrée 5x5:
Et ceci est le résultat de 15x15:
Merci pour toute aide! :)
Pourquoi la sortie de votre boîtier 15 x 15 est-elle seulement de 5 x 5? (Indice: première ligne de votre fonction mex). – strubbly
Oui. C'était le problème. Je l'ai modifié maintenant et fonctionne. :) – Litwos