summaryrefslogtreecommitdiffstats
path: root/SD-VBS/benchmarks/texture_synthesis/src/matlab/buildSpyrLevs.m
diff options
context:
space:
mode:
Diffstat (limited to 'SD-VBS/benchmarks/texture_synthesis/src/matlab/buildSpyrLevs.m')
-rwxr-xr-xSD-VBS/benchmarks/texture_synthesis/src/matlab/buildSpyrLevs.m37
1 files changed, 37 insertions, 0 deletions
diff --git a/SD-VBS/benchmarks/texture_synthesis/src/matlab/buildSpyrLevs.m b/SD-VBS/benchmarks/texture_synthesis/src/matlab/buildSpyrLevs.m
new file mode 100755
index 0000000..4c00077
--- /dev/null
+++ b/SD-VBS/benchmarks/texture_synthesis/src/matlab/buildSpyrLevs.m
@@ -0,0 +1,37 @@
1% [PYR, INDICES] = buildSpyrLevs(LOIM, HEIGHT, LOFILT, BFILTS, EDGES)
2%
3% Recursive function for constructing levels of a steerable pyramid. This
4% is called by buildSpyr, and is not usually called directly.
5
6% Eero Simoncelli, 6/96.
7
8function [pyr,pind] = buildSpyrLevs(lo0,ht,lofilt,bfilts,edges);
9
10if (ht <= 0)
11
12 pyr = lo0(:);
13 pind = size(lo0);
14
15else
16
17 % Assume square filters:
18 bfiltsz = round(sqrt(size(bfilts,1)));
19
20 bands = zeros(prod(size(lo0)),size(bfilts,2));
21 bind = zeros(size(bfilts,2),2);
22
23 for b = 1:size(bfilts,2)
24 filt = reshape(bfilts(:,b),bfiltsz,bfiltsz);
25 band = corrDn(lo0, filt, edges);
26 bands(:,b) = band(:);
27 bind(b,:) = size(band);
28 end
29
30 lo = corrDn(lo0, lofilt, edges, [2 2], [1 1]);
31
32 [npyr,nind] = buildSpyrLevs(lo, ht-1, lofilt, bfilts, edges);
33
34 pyr = [bands(:); npyr];
35 pind = [bind; nind];
36
37end