Estoy tratando de usar Python y Numpy/Scipy para implementar un algoritmo de procesamiento de imágenes. El perfilador me dice que se gasta mucho tiempo en la función siguiente (llamado a menudo), que me dice que la suma de las diferencias cuadradas entre dos imágenesSuma de diferencias cuadradas (SSD) en numpy/scipy
def ssd(A,B):
s = 0
for i in range(3):
s += sum(pow(A[:,:,i] - B[:,:,i],2))
return s
¿Cómo puedo acelerar esto verdad? Gracias.
Bang. Estoy teniendo un día lento. Reduce a la mitad mi tiempo de ejecución. –
Vale la pena señalar que para esto tendrá que usar 'numpy.sum', no la suma incorporada', que encontrará la suma sobre la primera dimensión y devolverá una nueva matriz de una dimensión inferior. –
((A-B) ** 2) .sum (-1) Si solo desea agregar el último eje, entonces se debe especificar el argumento del eje. El uso de suma() agrega todas las entradas de la matriz (raveled primero) – user333700