Multiple ROI within one slice median calculation

1 回表示 (過去 30 日間)
Fiona Gong
Fiona Gong 2019 年 8 月 23 日
編集済み: Matt J 2019 年 8 月 23 日
Hi all,
I have a mask file 192x192x10, within each slice there are multiple ROIs with mask = 1 and background = 0. I then use bsxfun to apply this mask to an image 192x192x17 with values between [0,1]. What I'm trying to calculate is the median value of each individual ROIs within each slice. Is there an easy way to calculate the median value of each individual ROIs?
Many thanks!
Fiona
  2 件のコメント
xi
xi 2019 年 8 月 23 日
編集済み: xi 2019 年 8 月 23 日
There are multiple ROIs within each slice. So, you need to define the number of ROIs as well as the sub-masks for individual ROIs, in order to calculate whatever value of each ROI.
Otherwise, you will need to use some algorithms (such as clustering) to automatically detect connected regions as individual ROIs, for each given mask slice.
Fiona Gong
Fiona Gong 2019 年 8 月 23 日
Hi thanks for swift reply, much appreciate! Could you give some more clues about how to define the submask and number of ROIs? They can be random so number could be different at each slice.

サインインしてコメントする。

採用された回答

Matt J
Matt J 2019 年 8 月 23 日
編集済み: Matt J 2019 年 8 月 23 日
I think this is what you want:
I=reshape(Image,[],17);
clear Medians
for i=1:10 %loop over masks
S=regionprops(mask(:,:,i),'PixelIdxList');
J=numel(S);
for j=J:-1:1 %loop over ROIs
Medians{i}(:,j)=median(I(S(j).PixelIdxList,:),1);
end
end

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by