overlay mask on sequence of mri images to mark out tumor ROI

4 views (last 30 days)
I created a mask based on one frame to mark out my ROI region.
segment_mask = poly2mask(xi, yi, 256, 256);
Is there a way I can overlay this mask onto my sequence of frames stored in a 3d array(256 x 256 x #of frames)?

Accepted Answer

Daniel M
Daniel M on 19 Oct 2019
Edited: Daniel M on 19 Oct 2019
maskedImg = imgArray.*segment_mask;
% segment_mask is size [256,256]
% maskedImg is same size as imgArray
[256, 256, #of frames]
If you are using an older version of Matlab you may have to use bsxfun().
  1 Comment
Image Analyst
Image Analyst on 19 Oct 2019
Like this:
% Mask the image using bsxfun() function to multiply the mask by each channel individually.
maskedImage3d = bsxfun(@times, image3d, cast(mask, 'like', image3d));

Sign in to comment.

More Answers (0)

Categories

Find more on Neuroimaging in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!