123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- function superMask = superpix_group(mask, N_svox)
- % this function contains supervoxel grouping
- canvas2 = sqrt(bwdist(1-mask));
- % orthoslice (canvas2)
- % find box crop of ROI
- ymin = 0;
- ymax = 0;
- for yi = 1:size(mask,1)
- data = mask(yi, :,:);
- if max(data(:)) >0
- if ymin == 0
- ymin = yi;
- end
- ymax = yi;
- end
- end
- xmin = 0;
- xmax = 0;
- for xi = 1:size(mask,2)
- data = mask(:,xi,:);
- if max(data(:)) >0
- if xmin == 0
- xmin = xi;
- end
- xmax = xi;
- end
- end
- zmin = 0;
- zmax = 0;
- for zi = 1:size(mask,3)
- data = mask(:,:,zi);
- if max(data(:)) >0
- if zmin == 0
- zmin = zi;
- end
- zmax = zi;
- end
- end
- canvas3 = canvas2(ymin:ymax, xmin:xmax, zmin:zmax);
- [L,NumLabels] = superpixels3(canvas3,N_svox);
- superMask = zeros(size(mask));
- superMask(ymin:ymax, xmin:xmax, zmin:zmax) = L;
- superMask(logical(1-mask)) = 0;
- disp([num2str(numel(unique(superMask))-1) ' areas created.' ])
- end
|