Mercurial > hg > octave-image
diff inst/@strel/getsequence.m @ 770:577f260755b4
strel: implement hypercube and hyperrectangle shapes.
* @strel/strel.m: implement the hypercube and hyperrectangle shapes.
* @strel/getsequence.m: implement SE decomposition for the new
shapes. Generalize with the square, cube, and rectangle shapes.
author | Carnë Draug <carandraug@octave.org> |
---|---|
date | Tue, 23 Jul 2013 05:30:57 +0100 (2013-07-23) |
parents | d3cb0158612f |
children | faa1945e2d2b |
line wrap: on
line diff
--- a/inst/@strel/getsequence.m +++ b/inst/@strel/getsequence.m @@ -27,16 +27,14 @@ if (isempty (se.seq)) switch (se.shape) - case "cube" - se.seq{1,1} = strel ("arbitrary", true (se.opt.edge, 1)); - se.seq{2,1} = strel ("arbitrary", true (1, se.opt.edge)); - se.seq{3,1} = strel ("arbitrary", true (1, 1, se.opt.edge)); - case "rectangle" - se.seq{1,1} = strel ("arbitrary", true (se.opt.dimensions(1), 1)); - se.seq{2,1} = strel ("arbitrary", true (1, se.opt.dimensions(2))); - case "square" - se.seq{1,1} = strel ("arbitrary", true (se.opt.edge, 1)); - se.seq{2,1} = strel ("arbitrary", true (1, se.opt.edge)); + case {"square", "cube", "hypercube", "rectangle", "hyperrectangle"} + nd = ndims (se.nhood); + for idx = 1:nd + vec_size = ones (1, nd); + vec_size(idx) = size (se.nhood, idx); + se.seq{idx} = strel ("arbitrary", true (vec_size)); + endfor + otherwise se.seq{1,1} = se; endswitch