Can I get length in z dimension from bwlabeln?

I'm using bwlabeln to label objects in a binary 3D image stack. I need to know if each of these objects spans more than one section in the stack. Can anyone recommend a way to do this? Thanks

Réponses (1)

Sean de Wolski
Sean de Wolski le 28 Mai 2015
Modifié(e) : Sean de Wolski le 28 Mai 2015
pixlist = regionprops(L,'PixelList')
Now look at pixlist's third column, i.e. z. If numel(unique(z))>1 there are multiple pages.
More - Example
%%Example data:
load mri
D = squeeze(D);
L = bwlabeln(D>50);
%%Engine
pixlist = regionprops(bwconncomp(L),'PixelList');
nobj = numel(pixlist);
for ii = nobj:-1:1
% multipage = 1, covers multiple pages, 0 does not.
multipage(ii,1) = numel(unique(pixlist(ii).PixelList(:,3)))>1;
end
% Find labels of multipage objects
multipageIdx = find(multipage);
% Keep only those in multipages
BW = ismember(L,multipageIdx);
% Relabel
Lmpage = bwlabeln(BW);
%%Check it
% How many multipage objects?
max(Lmpage(:))
% View as movie
implay(Lmpage);

2 commentaires

Tara
Tara le 28 Mai 2015
brilliant thank you! Now just have to figure out how to exclude all objects that have that third column = 1. I'm a newbie to MATLAB so will no doubt take me days ;)
See More for a full example.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Biomedical Imaging dans Centre d'aide et File Exchange

Question posée :

le 28 Mai 2015

Commenté :

le 28 Mai 2015

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by