J'essaie d'utiliser Python et Numpy/Scipy pour implémenter un algorithme de traitement d'image. Le profileur me dit beaucoup de temps est consacré à la fonction suivante (souvent appelé), qui me dit la somme des différences entre deux images carréesSomme des différences carrées (SSD) dans numpy/scipy
def ssd(A,B):
s = 0
for i in range(3):
s += sum(pow(A[:,:,i] - B[:,:,i],2))
return s
Comment puis-je accélérer ce? Merci.
Bang. Je passe une journée lente. Réduit de moitié mon temps de course. –
Il est à noter que pour cela, vous devrez utiliser 'numpy.sum', pas la somme interne, qui trouvera la somme sur la première dimension et retournera un nouveau tableau de dimension inférieure. –
((A-B) ** 2) .sum (-1) Si vous voulez seulement ajouter le dernier axe, alors l'argument de l'axe doit être spécifié. Le simple fait d'utiliser sum() ajoute toutes les entrées du tableau (en premier). – user333700