Azzera filtri
Azzera filtri

How to Remove Tail from Segmented Circle

3 visualizzazioni (ultimi 30 giorni)
Swathi
Swathi il 23 Nov 2023
Commentato: Swathi il 24 Nov 2023
Hi, I am currently working on segmenting the left ventricle's wall from a series of MRI images using region growing.
I am getting pretty good results, except there is a region surrounding the right ventricle with similar properties that ends up getting included (and sometimes including even more distal regions), as shown in the images attached.
I was wondering if there is an effective way of segmenting just the circular region of the wall either by shape or any other methods. Also, is there a way of filling in the crevices of the desired region/smoothing its surface without closing the inner hole? Thanks!
  3 Commenti
Swathi
Swathi il 23 Nov 2023
I have attached the original image and the segmentation mask

Accedi per commentare.

Risposta accettata

Matt J
Matt J il 24 Nov 2023
Modificato: Matt J il 24 Nov 2023
This uses bwlalphaclose from this FEX download
load image
im=double(im);
im=repmat(uint8( im/max(im(:))*255 ),1,1,3);
BW=load('mask').img;
BW=bwlalphaclose(BW,1,'HoleThreshold',200);
C=imopen(imfill(BW,'holes'),eye(4))&BW;
C=bwareafilt(C,[100,inf]);
C=bwpropfilt(C,'Eccentricity',1,'smallest');
C=bwlalphaclose(C,3,'HoleThreshold',200);
imshow(imoverlay(im,C,'y'),[]);
  3 Commenti
Matt J
Matt J il 24 Nov 2023
Modificato: Matt J il 24 Nov 2023
Well, you still have the original mask, so you can select features from that mask and add them to the revised one. Now that you've isolated the circle around the left ventricle, you should be able to establish landmarks that allow you to find and extract which parts of the original mask you'd like to keep.
Swathi
Swathi il 24 Nov 2023
Got it, thanks! Ultimately, I think I'm going to go with a different approach as suggested by the other commenter just for the sake of automating the task since I have to repeat this across many slices for hundreds of patients, but this is an approach that solves the problem perfectly. Appreciate the help a lot!

Accedi per commentare.

Più risposte (1)

Image Analyst
Image Analyst il 24 Nov 2023
Another solution might be possible. How much do you know about the tail? Is it always about that thickness, and the ventricle wall is always about that thickness with a large hole, and there may or may not be "junk" on the left hand side of the image that we want to exclude? If we can make some assumptions about how large or long the tail is we might be able to find it and cut it off without affecting any of the very small protrusions along the ventricle wall.
I'm thinking of trying things like scanning the image column-by-column (to find tail apart from circle), using convex hull, bwboundaries, perhaps some morphological functions, perhaps fitting to an ellipse and looking for protrusions that go far outside the fitted ellipse, etc. It would definitely take hours or days of work with lots of different images to get a robust solution.
Unfortunately I can't donate/spend that much time for you, plus I'm going on vacation without computer for the next 3 days. But you can, so good luck. I'm attaching a couple of fitting functions that might come in useful.
Finally, see this link for image processing articles that worked on heart images.
  1 Commento
Swathi
Swathi il 24 Nov 2023
Thanks, I think I'm going to be using a combination of these approaches to better delineate the left ventricle: a best-fit circle/ellipse, bwboundaries, and boundaries of the right ventricle I've more successfully extracted with region mapping. Thanks for the resources!

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by