I wanted to get the best segmentation I could using the ConnectedThreshold filter on the TOF image, and then work with the settings in SNAP to see what kind of segmentation I could achieve. I started out by defining a tight region of interest around one of the stents, and then increasing the threshold as far as I could without getting non-vessel tissue:


click for larger image

This is the initial segmentation once I imported it into SNAP:


click for larger image

I then worked with the growth parameters to see what kind of results I could achieve. The following is the initial segmentation (growth step 0) that each of the following tests start with (the same segmentation as the previous image). All of the tests show samples from growth step 20, 50, and 100.


click for larger image

I first tried with the standard settings, without very good results:

Standard Settings (Balloon Force = 1.0, Curvature Force = 0.2, Advection Force = 0.0)
Steps = 20

click for full screenshot

Steps = 50

click for full screenshot

Steps = 100

click for full screenshot

Since the advection force should keep the segmentation from 'spilling out', I tried increasing it, but the segmentation still wasn't clean, and wasn't growing to complete the vessel on the left in these images:

Balloon Force = 1.0, Curvature Force = 0.2, Advection Force = 2.0
Steps = 20

click for full screenshot

Steps = 50

click for full screenshot

Steps = 100

click for full screenshot

I tried with an Advection Force of 5 just to see what would happen. The segmentation is fairly clean even at step 100, but the segmentation of the smaller vessels actually disappeared:

Balloon Force = 1.0, Curvature Force = 0.2, Advection Force = 5.0
Steps = 20

click for full screenshot

Steps = 50

click for full screenshot

Steps = 100

click for full screenshot

Next I tried altering the Curvature Force, leaving the other parameters at their initial values. I was hoping that lowering this would allow the segmentation to more easily grow along the vessels. I tried with a curvature force of 0 and 0.2 (below). The segmentation did grow to connect all distinct pieces by step 100, but obviously with too much spill:

Balloon Force = 1.0, Curvature Force = 0.0, Advection Force = 0.0
Steps = 20

click for full screenshot

Steps = 50

click for full screenshot

Steps = 100

click for full screenshot

Balloon Force = 1.0, Curvature Force = 0.1, Advection Force = 0.0
Steps = 20

click for full screenshot

Steps = 50

click for full screenshot

Steps = 100

click for full screenshot

Next I tried adjusting the balloon force alone, first lowering it to see the effect. At 0 and 0.2 smaller parts of the initial segmentation disappeared:

Balloon Force = 0.0, Curvature Force = 0.2, Advection Force = 0.0
Steps = 20

click for full screenshot

Steps = 50

click for full screenshot

Steps = 100

click for full screenshot

Balloon Force = 0.2, Curvature Force = 0.2, Advection Force = 0.0
Steps = 20

click for full screenshot

Steps = 50

click for full screenshot

Steps = 100

click for full screenshot

I then tried increasing the balloon force, to see if the segmentation could be 'pushed' down the vessels, with similar results to decreasing the curvature force:

Balloon Force = 2.0, Curvature Force = 0.2, Advection Force = 0.0
Steps = 20

click for full screenshot

Steps = 50

click for full screenshot

Steps = 100

click for full screenshot

After testing each of the parameters independently, I tried modifying combinations of parameters to see if I could get better results. As you can see, my results weren't very impressive. These are just a few of the combinations I tried:

Decreased curvature and increased advection, trying to maintain a clean segmentation while growing down the vessels:

Balloon Force = 1.0, Curvature Force = 0.0, Advection Force = 2.0
Steps = 20

click for full screenshot

Steps = 50

click for full screenshot

Steps = 100

click for full screenshot

Balloon Force = 1.0, Curvature Force = 0.0, Advection Force = 5.0
Steps = 20

click for full screenshot

Steps = 50

click for full screenshot

Steps = 100

click for full screenshot

And high balloon, low curvature, and increased advection:

Balloon Force = 2.0, Curvature Force = 0.0, Advection Force = 5.0
Steps = 20

click for full screenshot

Steps = 50

click for full screenshot

Steps = 100

click for full screenshot

Balloon Force = 1.5, Curvature Force = 0.1, Advection Force = 4.0
Steps = 20

click for full screenshot

Steps = 50

click for full screenshot

Steps = 100

click for full screenshot

While the snake evolution fills out regions fairly well, it doesn't grow along vessels unless they are very distinct from the surrounding tissue. None of the parameter settings I tried could make the evolution push down small vessels without unacceptable missegmentation. In order to see what type of initial (seed) segmentation it would take to get good results from SNAP, I went back and performed a manual segmentation again. My first try follows:

The initial 'bubble' segmentation:


click for full screenshot

Oops, even that didn't connect all the pieces (further evolution didn't help):

Balloon Force = 1.0, Curvature Force = 0.2, Advection Force = 0.0
Steps = 50

click for full screenshot

So I added a few more bubble seeds:


click for full screenshot

And got a somewhat decent result:

Balloon Force = 1.0, Curvature Force = 0.2, Advection Force = 0.0
Steps = 20

click for full screenshot

Steps = 50

click for full screenshot

Steps = 100

click for full screenshot

Which was improved a little by increasing the advection force:

Balloon Force = 1.0, Curvature Force = 0.2, Advection Force = 2.0
Steps = 100

click for full screenshot

Once again, SNAP worked pretty well in filling out the vessels, but it doesn't look like it is going to work unless the initial segmentation is a completely connected unit.

Before giving up, I wanted to try a couple of other things. I tried adjusting the image preprocessing step in SNAP, but the evolution didn't seem very sensitive to the changes -- I ended up with pretty much the same results. I also wanted to try the 'intensity regions' segmentation. Although I still couldn't get the vessels to connect completely, I did get somewhat better results:

Balloon Force = 1.0, Curvature Force = 0.0
Steps = 20

click for full screenshot

Steps = 50

click for full screenshot

Steps = 100

click for full screenshot

After some more adjusting of parameters (threshold levels on the preprocessing step, mostly) and letting it run past step 100, I was able to get the vessels to connect, but there's a good deal of spill:

Balloon Force = 1.0, Curvature Force = 0.0
Steps = 237

click for full screenshot

Also, I wanted to try directly segmenting the REST image and using this as the seed segmentation. Using the same process I used on the TOF data, I was able to get the following initial segmentation. There isn't quite as much of the vessel segmented, but since it is directly from the REST image, there are no 'vessel boundary' problems, and the few tests I've run have given results as good as those using the initial segmentation from the TOF data.


click for full screenshot

The main problem seems to be that if a vessel goes down to single- or sub-voxel size, SNAP does a pretty poor job of segmenting it. If this is going to be common, we'll probably want to look at another method for segmentation -- there's certainly more to discuss.