VolumeReconstruction module: how can the output volume be saved?

Operating system: Win64
Slicer version: Slicer 4.11.20210226
Expected behavior: Build and save ultrasound volume through module VolumeReconstruction
Actual behavior: The expected output volume is always empty.

Hello everyone,

I am following this tutorial video, trying to generate Ultrasound volume.

However, in the Volume Reconstruction module, I was not able to find any function to save the volume, nor rendering the three anatomy planes of the volume.

Here is a screenshot of what I have done.

As shown in the screenshot, the output “volume” is a created new volume. I have tried to save/rendering it after “start” reconstruction, after “stop” reconstruction; however, the input “Image_Transducer” image can never be collected by the “Volume.”

I can currently only save an empty volume.

Could anyone please share some idea about how to collect 2D scans into the volume, and then save it as an ultrasound volume data (.nrrd) file?

Thank you so much in advance!

It seems that you have not reconstructed any volume. Could you record a sequence into the scene and share that scene as a .mrb file (upload it somewhere and post the link here) so that we can check what’s wrong?

Hi Iassoan,

Thank you for your reply!

I know how to save a scene, however, I have no idea about how to record a sequence.

Could you please let me know how to record a sequence? It that using the VolumeReconstruction module, or some module else? And is there any relationship between the recorded sequence (saved inside the .mrd file, or a separate file) and a scene?

You can record tracking and image data using Sequences module as described here.

Hi Iassoan,

I recorded a sequence into the scene, however, only with Image_Transducer recorded; I was not able to find the way to record the reformated node with the transform ProbeToTracker applied.

You can find and download the scene file from here.

In the recorded sequence, you will see the stream without moving, while in reality, the 2D scan was moving inside the ROI from one side to the other.

Please kindly teach me how to record the sequence with the transform ProbeToTracker applied.

You will also see that the output volume from the module VolumeReconstruction is always empty.
Please help me with that problem.

I really appreciate your help!
And please help me

Add all the nodes that you want to record to the same sequence browser node. If you have trouble with this then tell exactly what you tried (each mouse click), or record a screen capture video of what you did.

Hi Iassoan,

Please find the new scene file.
And please watch the detailed screen video that matched that scene file above (.mrb), which shows how exactly I was trying to generate ultrasound volume and record sequence.

Please share any idea that how can I generate non-empty ultrasound volume, and save it.

Thanks a lot, these scene is very helpful. Except the transformed ROI, everything looks good to me, but even if I remove the transform from the ROI I don’t see the volume being reconstructed.

@Sunderlandkyl could you please have a look at this?

1 Like

Do we have any updates on this problem, please?

Thank you so much in advance!

I’ve made some fixes and updated the volume reconstruction module to work with transformed ROI nodes.
You should be able to try them in the preview build tomorrow.

I noticed that in the scene, you have your reconstructed output in the same sequence browser as your input data. If you are reconstructing from recorded data you will need to remove that sequence from the sequence browser, as it will overwrite the reconstruction results.

Good catch! This probably does not happen often, but if it is easy to add a check (maybe when the user starts volume reconstruction) then we could display a warning popup: If user presses OK then the module removes the reconstructed output volume from the sequence; if the user clicks Cancel then nothing happens, the reconstruction does not get started (I don’t think it can ever make sense to have the reconstruction result in the same browser node as the input).

(post deleted by author)


If you are reconstructing using the sequence browser in the scene, Sequence_2 will overwrite the output node (“Volume”) when the reconstruction has completed.

Yes, there were additional fixes to the way that the input transforms were concatenated which should solve the problem. The ability to use transformed a ROI is a new feature. Please try the preview release tomorrow and let us know if the issue persists.


Hi Sunderlandkyl,

I just did a test on the preview version.

The good news is, the volume is not empty anymore.
However, the results seem to be weird. Please check this screenshot.

I have no idea why the volume seems to be super noisy everywhere. I was no able to get even one interpretable cross-section. It seems far from the transducer input.

Could you please share your idea?

Is this a reconstruction from the recorded sequence in the scene?

The tracking in the first 2/3rds of the sequence is quite unstable, causing the ultrasound position to jump around significantly. That would result in a lot of noise in the reconstructed volume.

Hi Sunderlandkyl,

No, it is from a live stream.

To make everything clear, I did a procedure recording again.
Please check this video recording with the test of the preview version just now.

And here is the saved scene file.

If you watch my recorded video, you can see that “Volume_1” is super noisy almost everywhere. To avoid noises, I did just one round volume collection, with no repeat at all.

However, if you load the scene file and replay the saved “Volume_1”, the volume seems fine. Not that Noisy.

Here are two questions:
1. Why so noisy before reloading?
2. Why do the Volume cross-sections seem so “lower-resolution” than the 2D view? Like a down-sampling from the 2D view?

Thank you so much for your help in advance!