Re: Summed Area Table / Integral Image
- To: mathgroup at smc.vnet.net
- Subject: [mg115408] Re: Summed Area Table / Integral Image
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Mon, 10 Jan 2011 02:38:47 -0500 (EST)
This creates the table of sums for a simple example: {d1, d2} = {5, 6}; i = RandomInteger[{1, 10}, {d1, d2}] {{5, 6, 8, 6, 2, 8}, {7, 8, 10, 8, 1, 3}, {10, 3, 8, 6, 3, 3}, {7, 1, 5, 10, 5, 1}, {5, 9, 10, 5, 2, 4}} Clear[sum] sum[0, _] = 0; sum[_, 0] = 0; sum[x_, y_] := sum[x, y] = i[[x, y]] + sum[x - 1, y] + sum[x, y - 1] - sum[x - 1, y - 1] Table[sum[x, y], {x, d1}, {y, d2}] {{5, 11, 19, 25, 27, 35}, {12, 26, 44, 58, 61, 72}, {22, 39, 65, 85, 91, 105}, {29, 47, 78, 108, 119, 134}, {34, 61, 102, 137, 150, 169}} To create the table without displaying it, replace Table with Do: {d1, d2} = {2, 4}; i = RandomInteger[{1, 10}, {d1, d2}] {{2, 7, 9, 9}, {1, 2, 10, 9}} Clear[sum] sum[0, _] = 0; sum[_, 0] = 0; sum[x_, y_] := sum[x, y] = i[[x, y]] + sum[x - 1, y] + sum[x, y - 1] - sum[x - 1, y - 1] Do[sum[x, y], {x, d1}, {y, d2}] ?? sum Global`sum sum[1,1]=2 sum[1,2]=9 sum[1,3]=18 sum[1,4]=27 sum[2,1]=3 sum[2,2]=12 sum[2,3]=31 sum[2,4]=49 sum[0,_]=0 sum[_,0]=0 sum[x_,y_]:=sum[x,y]=i[[x,y]]+sum[x-1,y]+sum[x,y-1]-sum[x-1,y-1] Bobby On Sun, 09 Jan 2011 01:18:31 -0600, Gareth Edwards <gareth.edwards at cubicmotion.com> wrote: > Next newbie question.... > > Suppose I have a 2D matrix, what would be a neat syntax for computed the > 'Integral Image' or summed area table? ( > http://en.wikipedia.org/wiki/Summed_area_table ) > > Many thanks in advance for any neat suggestions. > > Best, > > Gareth > -- DrMajorBob at yahoo.com