Opencv cv2.absdiff(img1, img2).sum() sans temporaires img

Est-il possible de calculer cv2.absdiff(img1, img2).sum() sans temporaires img ?

J'ai un flux vidéo et j'ai besoin d'une sorte de stabilisation de l'image sur le début de mon traitement.
Le absdiff donne et rapide d'erreur dépendant du résultat de consulter différentes placement des vecteurs avec les deux images suivantes, mais j'ai de créer, d'écrire et de lire une image temporaire dont l'un est utilisé que pour calculer l'img.sum(). Donc il serait bien d'éliminer ces l'allocation de la mémoire, de l'écriture et de la lecture des mesures.

def calcMatch(img1, img2):
    diff = cv2.absdiff(img1, img2)
    return diff.sum()

Solution en python

import cv2
import time

img = cv2.imread('test.jpg')
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
img1 = img[10:330, 10:870]
img2 = img[20:340, 20:880]

start = time.clock()
d = cv2.absdiff(img1, img2)
s = d.sum()
t = time.clock() - start
print 'with absdiff ', t
print s

start = time.clock()
s = cv2.norm(img1, img2, cv2.NORM_L1)
t = time.clock() - start
print 'with norm L1 ',  t
print s

Il donne significative de vitesse comme sur mon portable avec une très grande stabilité du ratio:
avec absdiff 0.00207574457822
4315120
la norme L1 0.000226647018223
4315120.0

OriginalL'auteur jshepherd | 2013-07-24