How can I remove inside area from an ROI to analyse the outer area only?

2 次查看(过去 30 天)
I have recently started using MATLAB for image processing with MR images, and so far have found previously asked questions and examples to be a great help - but with this I am a little stuck! I have created an ROI on my dicom image using imfreehand() I have then dilated this ROI using the imdilate(I, strel('square',n)) function to create a new ROI. Ideally, I would now like to subtract the original ROI from the new ROI so that I am left with only the new area. Any help would be greatly appreciated!

采纳的回答

KSSV
KSSV 2017-8-7
I = imread('cameraman.tif') ;
imshow(I)
h = imfreehand ;
pos = wait(h);
%%Extract the ROI
[ny,nx] = size(I) ;
[X,Y] = meshgrid(1:nx,1:ny) ;
idx = inpolygon(X(:),Y(:),pos(:,1),pos(:,2)) ;
Z = I ;
Z(idx) = NaN ;
imshow(Z) ;
  4 个评论
molly jane fitches
I thought so, thought it would be very easy to adjust but rather than returning an error it executes and displays the original image. I drew the ROI using imfreehand, then tried it as a double, and then tried using the column and row vectors from the boundary.

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by