You’ll see that Slicer is pretty amazing. All the steps that you need to do are already implemented and it is all very fast and accurate.
- Step 2 is implemented in
Extract centerline
module inVMTK
extension. - Step 3-4 és called curved planar reformatting and it is implemented in
Curved Planar Reformat
module inSandbox
extension. You just specify the image, centerline, resolution, slice size and the module provides you all the reformatted slices in a 3D array ('Straightened volume). It is all very accurate and efficient. Moreover, it also provides the
Straightening transform`, which can translate any 3D object (image, segmentation, centerline, landmark points, etc.) between the original image space and the straightened space. - You can save the 3D volume, process it slice by slice (segment the vessel lumen, segment/characterize plaque, etc) and then save the result in a 3D volume that had the same geometry (origin, spacing, axis directions) as the input volume.
- Step 6 - volume reconstruction is implemented in Slicer, too. If the centerline resolution and slice size is chosen that slices do not intersect then you can reconstruct the segmentation by simply inverting the straightening transform, apply it to the straightened image segmentation, and harden the transform (each of these steps are just a few clicks). In case your centerline is highly curved or you need very high resolution along the centerline then the extracted slices may intersect each other. In this case, you can use use
Volume Reconstruction
module in SlicerIGT extension, as this module can reconstruct volumes from arbitrarily moving, intersecting slices. The input of this module is a time series of properly positioned and oriented slices, so if you want to use this module then you need to copy each oriented slice into a volume sequence.