How to expand to a normal vessel with ITK when I have a skeleton line and every radius for pixels?

StackOverflow https://stackoverflow.com/questions/11282262

  •  18-06-2021
  •  | 
  •  

Question

I did an thinning operation on vessels, and now I'm trying to reconstruct it.

How to expand them to normal vessels in ITK when I have a skeleton line and radius values for each pixel?

Was it helpful?

Solution

DISCLAIMER: This could be slow, but since no other answer has been suggested, here you go.

Since your question does not indicate this, I'm assuming that you're talking about a 2D image, but the following approach can be extended for 3D too. This is how I'd go about it:

  1. Create a blank image with zero filled pixel values
  2. Create multiple instances of disk/sphere ShapedNeighborhoodIterator each having a different radius on the blank image (choose the most common radii from the vessel width histogram).
  3. Visit each pixel in the binary skeleton image. When you come upon a white (vessel skeleton) pixel, recollect the vessel radius at that pixel.
  4. If you already have a ShapedNeighborhoodIterator for that radius value, take the iterator to the pixel location in the blank image and fill up a disk/sphere of white pixels centered about that pixel. If you don't have a ShapedNeighborhoodIterator for that radius value, create one and do the same operation.

Once you finish iterating over the skeletonized image, you will have a reconstructed tree in the other image. Note that step 2 is optional, but will help you achieve faster computation.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top