Skip to content

Commit 4f19094

Browse files
committed
[bug] fix volgrow and volshrink, flip mask for convn, fix laplacefill
1 parent 9caffba commit 4f19094

File tree

3 files changed

+18
-10
lines changed

3 files changed

+18
-10
lines changed

laplacefill.m

+3-3
Original file line numberDiff line numberDiff line change
@@ -87,18 +87,18 @@
8787
end
8888

8989
if (nargin > 2)
90-
mysolver = str2fun(solver);
90+
mysolver = str2func(solver);
9191
[newvol, flag] = mysolver(Amat, b, tol, maxiter, varargin{:});
9292
else
9393
[newvol, flag] = bicgstab(Amat, b, tol, maxiter, varargin{:});
9494
end
9595

9696
if (flag)
97-
newvol = gmres(Amat, b, 100, tol, maxiter, varargin{:});
97+
newvol = gmres(Amat, b, 28, tol, maxiter, varargin{:});
9898
end
9999

100100
newvol = reshape(full(newvol), size(vol));
101101

102102
if (isempty(seedidx))
103-
newvol = ~newvol;
103+
newvol = ~(newvol > tol);
104104
end

volgrow.m

+1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
end
3535
end
3636

37+
mask = rot90(mask, 2);
3738
newvol = vol;
3839

3940
for i = 1:layer

volshrink.m

+14-7
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,19 @@
3333
mask = [0 1 0; 1 1 1; 0 1 0];
3434
end
3535
end
36-
36+
mask = rot90(mask, 2);
3737
totalmask = sum(mask(:));
38-
newvol = vol;
39-
40-
for i = 1:layer
41-
newvol = (convn(logical(newvol), logical(mask), 'same') == totalmask);
38+
newvol = ones(size(vol) + 2);
39+
if (ndims(vol) == 3)
40+
newvol(2:end - 1, 2:end - 1, 2:end - 1) = (vol ~= 0);
41+
for i = 1:layer
42+
newvol(2:end - 1, 2:end - 1, 2:end - 1) = (convn(logical(newvol), logical(mask), 'valid') == totalmask);
43+
end
44+
newvol = double(newvol(2:end - 1, 2:end - 1, 2:end - 1));
45+
else
46+
newvol(2:end - 1, 2:end - 1) = (vol ~= 0);
47+
for i = 1:layer
48+
newvol(2:end - 1, 2:end - 1) = (convn(logical(newvol), logical(mask), 'valid') == totalmask);
49+
end
50+
newvol = double(newvol(2:end - 1, 2:end - 1));
4251
end
43-
44-
newvol = double(newvol);

0 commit comments

Comments
 (0)