Segmenting Finer Blood Vessels in the Arm


I am working with angiogram data of the arm and need to be able to segment the finer blood vessels throughout the forearm. It is not high contrast imaging, making it very difficult to see in the slices, (hopefully the next scan will be), and I have downloaded the VMTK extension, hoping to find a feature that would be able to help, but it is still difficult to navigate. It seems that many of the features are optimized for much larger vessels, such as aortic ones, but wondering if anyone has any tips or tricks besides manually segmenting and painting where I’m guessing they are located throughout the slices?

Thanks in advance!

In general, if you have hard time seeing the vessels then segmentation will have to be mostly manual.

Vesselness filtering module might help with somewhat increasing the contrast of vessels. You can also try anisotropic filtering in Simple Filters module to improve visibility. If you have contrast-free acquisition then you can do DSA - by subtracting the contrast-free image from the opacified image.

If visibility is very bad (basically not visible, you only see slight hints on some slices and you know that those pieces must be connected) then probably the best is to just use the “Draw tube” effect (provided by SegmentEditorExtraEffects extension) to manually draw each vessel segment. This is of course tedious, but if you have only a few dozen of images then it may be still much faster than developing some custom processing methods.

Is the image quality comparable to the “CTACardio” Slicer sample data set? Can you attach a few screenshots of your image?


Thank you so much for getting back to me. I’ve attempted vesselness filtering, and it is somewhat helping for larger blood vessels. However, I’m unable to adjust some of the parameters such as vessel contrast and I’m not sure why, seems like increasing the contrast would be very helpful in this situation where it’s difficult to see.

I’ve attached a screenshot to show you the quality of the scan, it is relatively similar to the sample data “CTA Cardio”, but focused more on the left side of the body and arm.

My main focus is to detect the finer blood vessels, such as the one I’m pointing to in the screenshot, but even with the vesselness filtering it is proving difficult.

I’ve also tried the anisotropic filtering methods like you suggested, however I am getting error messages for both of these as well saying “sitk::ERROR: Pixel type: 16-bit signed integer is not supported in 3D by class itk::simple::CurvatureAnisotropicDiffusionImageFilter.”.

My current method that I’ve been using for my last few scans has been the draw tube method as you’ve suggested, and it works well for larger vessels that are easier to see, but is definitely tedious and does not help as I get closer to the wrist where the finer ones of interest are located.

If you have any input for better utilizing vesselness fiiltering or to address the error for the anisotropic filters I’d really appreciate it! Thanks in advance.

Can you provide a sample anonymized volume as an NRRD file ?