Operating system: windows 10
Slicer version: 4.10
Expected behavior: See cine motion of all phases in volume render/segmentation and then virtual reality
Actual behavior: Not working
I read the prior discussions about loading multiple volumes. I loaded a dicom file of CT Heart with 10 phases in order to segment them or see them in volume rendering. But after loading the file, all i see is one volume and have used sequences and sequence browser. But I am unable to work any further. My queries:
- How to load the multiple volume and play them in motion.
- How to see the cine motion in volume rendering and then see the same in virtual reality.
- If i need to segment the multiple phases using threshold, how to do that. I cant figure that out (whether to do that in one phase or all phases.
Would appreciate everyone’s help.
This post should clarify things: Single series with multiple frames, separate out?
Let us know if you still have questions.
Thanks for helping.
I was able to load the volume as multiple phrase.
But I am unable to segment multiple frames. What I am trying to do is the same as Nicholas had pointed out. Playing all frames as cine or animation.
- Wish to segment all 10 phases, so I may play them as an animation in 3D.
- Then play the same animation/cine in virtual reality.
- If I could do the same in volume rendering.
I would appreciate everyones help. My next step is to see how can I bring an external device into the frame and play it like that video of pedicle screw insertion.
See instructions for how to create a segmentation sequence here: Segmentation of multi volume sequence - #2 by lassoan
4D animation works the same way in virtual reality as on the desktop screen. You just need to click the virtual reality button to see content in virtual reality.
Volume rendering works the same way in virtual reality as on the desktop screen. You may click the “optimize” button on the virtual reality toolbar to improve volume rendering performance settings.
Create a new Segmentation node (e.g., by segmenting image at one timepoint): _I created a first segmentation on phase 0 of volume. _
Go to Sequence browser module: Ws able to do that
Click the green “+” button next to “Create new sequence”. This creates a new sequence that will store the segmentation for each timepoint.: “Done”
Choose your segmentation node in the “Proxy node” column in the table (last row). This indicates that this sequence will store states of the chosen segmentation node.: " Don’t know which node to pick."
Check “Save changes” checkbox to allow modifying the sequence by editing the segmentation node." Can do but not sure which segmentation node to pick".
"Also when i finished segmentation in phase 0, it was automatically (not by me) transferred to all the phases but was not correct. How can I avoid that. Or if i can propagate them correctly.
I think I am not able to follow the commands properly for this animation, so would appreciate a little detailed and step approach.
Would appreciate help.
“Choose your segmentation node” means pick the segmentation node. [quote=“sarvpriya1985, post:5, topic:5214”]
when i finished segmentation in phase 0, it was automatically (not by me) transferred to all the phases but was not correct. How can I avoid that. Or if i can propagate them correctly
When you switch frames, previous segmentation is automatically propagated to the current frame. If you want to start from an empty segmentation, go through the sequence before you start segmenting.
You can also run Sequence Registration to compute a displacement field that can be used to warp the segmentation of one frame to all other frames.
I am still left with the issue of animation playing and accurate segmenting.
I used sequence registration and transform the segments but they were all inaccurate. In addition, whatever segments I got, I went back to segment editor and created 3d model. But the model doesnt show any cine/animation.
Attaching a screenshot of sequence registration that I did.
So if I say again, I would need two things.
- Accurate segmentation of each phase. 2. And then play it as animation.
I have tried my best but would certainly need some additional help.
I would again tell how I am doing and where I am failing.
I am attaching the screenshots in sequence that I was told. But I could not go beyond creating a new sequence. When I click play, no cine motion is seen.
Even after using sequence registration, there is error message coming.
Sequence of my events:
(picked this segmentation node)
I don’t know at which step I am doing wrong. Appreciate all the help.
Thanks, the screenshot helps. To set up registration correctly:
- Registration is computed from the “fixed frame index”-th frame. Make sure you choose the segmented frame.
- Output volume sequence must not be the same as output transform sequence.
- Use “generic (all)” preset first. If registration works with that then you may try more advanced, specialized presets.
In step 3 you chose a the master volume node as proxy node. You need to choose a segmentation node instead.
It all worked fine till phase 9 when I got this error message. How long should I expect to finish registration (it took about 20 minutes to finish phase 9 before it got stuck.
Also how can I segment each frame individually as I am not sure since this registration takes such long and may get stuck.
Also as these frames have lot of motion. It would be better if I could segment them separately as registration may fail due to excessive motion in between slices.
“bad allocation” error message means that you’ve run out of memory. Crop and/or resample your input image sequence using Sequence resample module or add more memory (upgrade your computer with more physical RAM or configure it to have more virtual memory).
I have a 16gb memory. Should not that be enough. I am not aware how much virtual memory I have.
Is there a way i can share the multiphase file and see if you or someone else are able to recreate that animation movie. In that way I can learn the fine steps in a little more detail.
You can upload to Dropbox, OneDrive, or Google drive and post the link. Make sure to remove patient information.
16GB RAM is not too much, but OK (things will be slow if you don’t reduce image size). You must increase virtual memory size in Wibdiws system settings - probably 50GB will be enough.
This is the link. Pls see if you could let me know a little more about my wrongdoing in creating this animation.
SarvMultiphase cardiac CT
Did you get chance to llok at the multiphase CT file that I shared. Inspite of all prior discussions, I am still struggling to segment all phases and play an animation. Would appreciate all help.
I’ve tried the registration and found the followings:
- Image size is quite large, therefore I used “Crop volume sequence” module to crop and resample the image (used 1.7x isotropic spacing; resulting in an approximately 100x80x80 volume)
- Segmented frame index=9 using thresholding and then used Sequence registration module (selected same frame index = 9 as fixed frame, “fixed frame to moving frames” direction). Applied output transform to segmentation. Registration result was not accurate enough. Probably the registration is hard because the difference between frames is quite significant (due to motion and difference in contrast distribution).
- Tested “3D CT multi-contrast (cardiac)” preset (set both start frame index and end frame index values to 2 so that I don’t have to wait for registration of 10 frames) and I found that the registration is much better (maybe good enough), it was just very long - took almost 15 minutes. This indicates that the registration results can be improved by tuning registration parameters.
If you are interested in developing a good registration preset that can be used to register such image sequences then I think “3D CT multi-contrast (cardiac)” is a good starting point. Try to simplify (reduce number of steps, etc) and see if you can make the registration faster without making registration results worse. You may ask help on Elastix forum.
If you don’t want to spend much time with automated registration and you just need segmentation for all time points then you may try the more manual, landmark-based registration (for example, using Fiducial registration wizard module in SlicerIGT extension; or maybe Landmark registration in Slicer core).
You might also make segmentation faster by defining seed regions on one frame and then use the same seed regions for “Grow from seeds” in each frame to get complete segmentation.
I spent many days struggling to do multi phase cardiac segmentation. I am happy to do segmentation on individual cardiac phases as registration is not working. But how to do that is still eluding me and I was hoping to do a presentation on seeing animated cardiac cine on virtual reality here at my facility. I am unable to proceed further and still stuck at single phase segmentation. I know its a lot to ask for from the forum, but I would appreciate some extra help to move further in this aspect.