Jump to content
  • entries
    5
  • comments
    16
  • views
    27,409

Segmentation of a foot MRI scan


mikefazz

5,757 views

So I have seen some questions here on embodi3D asking how to work with MRI data.  I believe the main issue to be with attempting to segment the data using a threshold method.  The democratiz3D feature of the website simplifies the segmentation process but as far as I can tell relies on thresholding which can work somewhat well for CT scans but for MRI is almost certain to fail.  Using 3DSlicer I show the advantage of using a region growing method (FastGrowCut) vs threshold.

 

The scan I am using is of a middle aged woman's foot available here

MRI_Data.png

 

The scan was optimized for segmenting bone and was performed on a 1.5T scanner.  While a patient doesn't really have control of scan settings if you are a physician or researcher who does; picking the right settings is critical.  Some of these different settings can be found on one of Dr. Mike's blog entries.

 

For comparison purposes I first showed the kind of results achievable when segmenting an MRI using thresholds.

MRI_Segmentation_Thresh.png

 

With the goal of separating the bones out the result is obviously pretty worthless.  To get the bones out of that resultant clump would take a ridiculous amount of effort in blender or similar software:

BetterWay.jpg

 

If you read a previous blog entry of mine on using a region growing method I really don't like using thresholding for segmenting anatomy.  So once again using a region growing method (FastGrowCut in this case) allows decent results even from an MRI scan.

 

MRI_Seg-RG.png

 

Now this was a relatively quick and rough segmentation of just the hindfoot but already it is much closer to having bones that could be printed.  A further step of label map smoothing can further improve the rough results.

MRI-Seg_RG-SM_Calc.png

 

The above shows just the calcaneous volume smoothed with its associated surface generated.  Now I had done a more proper segmentation of this foot in the past where I spent more time to get the below result

Slcr_3DVolume.jpg

 

If the volume above is smoothed (in my case I used some of my matlab code) I can get the below result.

MRI_Seg_Smooth.jpg

 

Which looks much better.  Segmenting a CT scan will still give better results for bone as the cortical bone doesn't show up well in MRI's (why the metatarsals and phalanges get a bit skinny), but CT scans are not always an option.

 

So if you have been trying to segment an MRI scan and only get a messy clump I would encourage you to try a method a bit more modern than thresholding.  However, keep in mind there are limits to what can be done with bad data.  If the image is really noisy, has large voxels, or is optimized for the wrong type of anatomy there may be no way to get the results you want.

6 Comments


Recommended Comments

Thresholding is also my least favorite method of segmenting. I work in a radiation oncology department with access to some fantastic contouring software (MIM, Raystation, Eclipse, Pinnacle). Unfortunately, none of them have simple volume export functions. We've written a simple script which takes a Dicom structure file and outputs a simple CSV file with the contour point cloud. Using these tools along with 3DSlicer we generate volumes from these contours that seem to be much more accurate, have less noise, and are produced much faster than with the tools in 3DSlicer. Hopefully the contouring tools found in those softwares will make their way to 3DSlicer someday.

Screen Shot 2017-04-17 at 11.32.23 AM.png

Link to comment

Have you tried 3D Slicer recently? We've completely reworked segmentation by adding a new Segment Editor, which should be comparable and in a couple of things much better than commercial software (not just in price, flexibility and extensibility but in capabilities as well). Segment editor supports overlapping segments, advanced masking, real-time slice/3D view synchronization, hugely improved Fast GrowCut ("Grow from seeds"), contour interpolation, hollowing, smoothing, cutting, Boolean operations, input volume switching, editing on oblique slices, etc.

 

You can find a couple of tutorials and demos on our lab's YouTube channel and you can find some step-by-step tutorials here.

 

If you install SlicerRT extension, then you can load RT structure sets directly into Slicer and edit them using Segment Editor (or compare them, register, transform them, export them to DICOM, compute DVH, etc.). See for example this module for DICOM import, automatic registration of prostate MRI to ultrasound, and DICOM export:

 

On ‎4‎/‎17‎/‎2017 at 11:33 AM, michaelmplatt said:

Hopefully the contouring tools found in those softwares will make their way to 3DSlicer someday

 

If you have any specific request or recommendation then let us know. There may be many things that are easy to implement and make your work much easier.

Link to comment

I haven't checked it out recently but I will, thank you! I'm a big fan of 3DSlicer. I'll let you know if I have any questions.

Link to comment

Hello Mike!

I have done several tests using Fast GrowCut and I have obtained an .stl file but effectively with contours necessarily far from the precision of a bone, so it is necessary to soften.
You comment that you use a MatLab code to perform the smoothing of the bones, could you send us the MatLab code that you use to soften the volume of the 3D model obtained from MRI.

 

Thank you very much in advance.
 

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...