From 8ae8548dfd190d69016d8646574ee20aa26e67fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Sch=C3=B6nberger?= Date: Mon, 9 Dec 2013 07:52:08 +0100 Subject: [PATCH] Avoid temporary array allocations --- skimage/feature/template.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/skimage/feature/template.py b/skimage/feature/template.py index a5bbd062..a721cadf 100644 --- a/skimage/feature/template.py +++ b/skimage/feature/template.py @@ -139,7 +139,10 @@ def match_template(image, template, pad_input=False, mode='constant', nom = xcorr - image_window_sum * (template.sum() / template_volume) - denom = image_window_sum2 - image_window_sum**2 / template_volume + denom = image_window_sum2 + np.multiply(image_window_sum, image_window_sum, out=image_window_sum) + np.divide(image_window_sum, template_volume, out=image_window_sum) + denom -= image_window_sum denom *= template_ssd np.maximum(denom, 0, out=denom) # sqrt of negative number not allowed np.sqrt(denom, out=denom)