20060502-Fast local sums

来源:互联网 发布:java毕业设计代做 编辑:程序博客网 时间:2024/06/15 05:03

原文:http://blogs.mathworks.com/steve/2006/05/02/fast-local-sums/

The Image Processing Toolbox function normxcorr2 computes the two-dimensional normalized cross correlation. One of the denominator terms in this computation is a matrix containing local sums of the input image.

A = magic(7)
Computing an N-by-N local sum would seem to require N^2 - 1 additions for each location in the matrix. Functionnormxcorr2 uses two tricks to speed up the computation.

The first trick is that an N-by-N local sum can be computed by first summing along one dimension, giving a vector, and then summing the vector. Here's what the 3-by-3 local sum example from above looks like using this method:

The second trick uses cumsum to reduce the computational cost of computing the column and row sums. Let's explore this trick by looking at a single row of A, zero-padded on the left and the right:

Next, form a new vector that is [c(4)-c(1), c(5)-c(2), ..., c(end)-c(end-3)].

0 0
原创粉丝点击