Easy way to strip skull form MRI volume?

10 views (last 30 days)
I'm trying to create a code that separates the skull from the brain for a Serie of MRI Dicom files. I tried to use thresholds combined with selecting the biggest component combined with a mean intensity, but this only works partially. Does anybody has suggestions/knows a method to perform or optimize this kind of operation?
  9 Comments

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 23 Oct 2013
Without seeing the image, or knowing why you said it didn't work well, that's what I would have suggested. So, other than that, all I can say is to check the published literature: http://iris.usc.edu/Vision-Notes/bibliography/contentsmedical.html#Medical%20Applications,%20CAT,%20MRI,%20Ultrasound,%20Heart%20Models,%20Brain%20Models
  5 Comments
Image Analyst
Image Analyst on 23 Oct 2013
If the skull is disconnected from anything else, and there are no blobs outside the skull, you can just use ismember to create a new labeled image (as shown in my Image Segmentation Tutorial at http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862)
newLabeledImage = ismember(labeledImage, 2:numberOfBlobs);
Or, since you know it's blob #1, you can just zero it out directly
newLabeledImage = labeledImage; % Initialize
newLabeledImage(labeledImage==1) = 0;
If it's not blob #1, you can get rid of small blobs outside it with bwareaopen(), or you can try to identify it based on other things like the EquivDiameter, MajorAxisLength, Perimeter, etc. But if the skull connects to the inside, it's a lot more difficult.
Hugo
Hugo on 24 Oct 2013
Thanks again, this last one worked fine for me. The skull was connected to the inside, but after applying a threshold and removing some little objects bwlabel only selected the skull as blob #1.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!