The segmentation index in ITK

Hello all,

I’m a beginner with ITK. and I am researching on segmentation. I tested the ITK’s examples on MRI images and had a few questions:

  1. How to know the seed index of different materials (white matter, gray matter, ventricle)?
  2. What is the limit of the indexes (seed index, number of iterations, multiplier, neighborhood radius, etc.)? I mean: What are the specific rules for each material?
  3. Does Seed index have anything to do with CT number?
  4. I’m running a combination of 2 example to extract brain tumors on MRI images, CT,… And I do not know how to choose these indicators to fit my image (the most accurate brain tumor extract)…? Example: threshold, minsize,…

Here are some photos, and I chose these indicators completely random.
p q z

Thank you for your help,
Best regards,

Welcome to the ITK forum @hothao!

  1. The usual way to get an index of some important pixel is by having the user “pick it” using a pointing device (mouse, trackball etc). For that, a GUI library is required. Commonly used libraries with ITK are VTK and Qt. And after the click the mouse coordinates need to be translated from GUI library’s windowing system into ITK image index. To be able to pick a few appropriate indices for research, you could just use a suitable existing image viewer such as 3D Slicer or ITK-SNAP. Both show pixel’s coordinates by hovering/clicking on pixel. You can read that index and write it to your code, parameter file or pass it on the command line to your image analysis executable.

  2. SeedIndex needs to be in your image. If your image is 100x200x300, seedX can be between 0 and 99. Generally, number of iterations doesn’t have a specific limit, and you should try a few different values (1, 5, 10, 100) to see the effect iterations have. You can read about the effect of other properties in the filter’s documentation.

  3. SeedIndex indicates spatial position in an image, while CT number is a measure of pixel’s intensity. They are not related.

  4. The segmentation is an unsolved problem. See the latest research. The filters you picked can be a part of the solution, but as you discovered yourself they usually don’t provide exactly what we want. Different combinations of seeds can help you get insight into what is close to the desired solution, but you will have to constrain the filters or in some other way refine their output. But you already have a good start!


Segment Editor module in 3D Slicer offers many segmentation tools (connected components and more sophisticated variants are included). Most likely you’ll need to spend a couple of days with learning what the module can do and figuring out what combination of tools give you sufficiently accurate segmentation within acceptable time. These tutorials, segmentation recipes, and reference manual should help you get started. If you have any question then you can post it on Slicer forum.