Documentation/4.10/Modules/Volumes

From Slicer Wiki
Jump to: navigation, search
Home < Documentation < 4.10 < Modules < Volumes


For the latest Slicer documentation, visit the read-the-docs.


Introduction and Acknowledgements





   :Title: 
   :Author(s)/Contributor(s): 
   :License: 
   :Acknowledgements: 
 


Contact: Steve Pieper, <email>pieper@bwh.harvard.edu</email>
Isomics, Inc.  
Kitware, Inc.  
National Alliance for Medical Image Computing (NA-MIC)  
Surgical Planning Laboratory (SPL)  

Module Description

Use Cases

  • Lookup tables/Colour palettes
    • Information about the color nodes associated to volumes
  • Thresholds
  • View volume properties such as orientation and scalar type

How to Use

  • How to overlay two volumes
  • How to load data from a sequence of JPG files
  • When loading a 2D image(jpg, png, tiff ...), the window level(colors) might be skewed. To see the original colors switch the Window Level combobox to Manual Min/Max, then set Min to 0 and Max to 255.
    • Also use the Spacing field to enter the volumetric pixel sizes of the image data.
    • While you can display color volumes as slices, most slicer modules do not work natively with RGB or RGBA data, the new VectorToScalarVolume converter can be used to create a volume for use, for example, with the Editor. (added post-4.1).

Tutorials

Panels and their use

Parameters:





  ()
 
 
   
     * ': 
     
       ** ': 
       
        *** ': 
       
     
   
 


List of parameters generated transforming this XML file using this XSL file. To update the URL of the XML file, edit this page.

VolumesModule-2011-11-25.png Greyscale volume
VolumesModule-LabelMapDisplay-2015-05-05.png Label map volume display


On mouse over, a second popup appears under the window level double slider. Large dynamic range can be controlled using the slider. Moving the handles of the popup double slider changes the whole range of the window level double slider.

How to

  • Convert scalar volume to labelmap
  1. Load it as labelmap in the first place: In the 'Add data into the scene' dialog check 'Show Options' and enable the option named 'LabelMap'. When OK is clicked, the volume is loaded as a labelmap.
  2. Convert to labelmap using Cast Scalar Volume module. Select scalar volume as input, and create output by selecting 'Create new LabelMapVolume [as...]'. Output type is typically UnsignedChar.

Similar Modules

  • Each displayable type has a similar visualization control interface (for example, the Models, Tractography, Annotations...):
  • Volume Rendering: volume render in the 3D view(s).
  • Extensions

References

N/A

Information for Developers


How to create a volume node from scratch?

You need to create a vtkImageData, a vtkMRMLScalarVolumeNode and a vtkMRMLScalarVolumeDisplayNode.

In C++:

vtkNew<vtkImageData> imageData;
imageData->SetDimensions(10,10,10); // image size
imageData->AllocateScalars(VTK_UNSIGNED_CHAR, 1); // image type and number of components
// initialize the pixels here

vtkNew<vtkMRMLScalarVolumeNode> volumeNode;
volumeNode->SetAndObserveImageData(imageData);
volumeNode->SetOrigin( -10., -10., -10.);
volumeNode->SetSpacing( 2., 2., 2. );
mrmlScene->AddNode( volumeNode.GetPointer() );

volumeNode->CreateDefaultDisplayNodes()

In Python:

imageData = vtk.vtkImageData()
imageData.SetDimensions(10,10,10) # image size
imageData.AllocateScalars(vtk.VTK_UNSIGNED_CHAR, 1) # image type and number of components
# initialize the pixels here
volumeNode = slicer.vtkMRMLScalarVolumeNode()
volumeNode.SetAndObserveImageData(imageData)
volumeNode = slicer.mrmlScene.AddNode(volumeNode)
volumeNode.CreateDefaultDisplayNodes()

Note that the origin and spacing must be set on the volume node instead of the image data. The Image Maker extension module creates a volume from scratch.

IO

Here is the list of supported file formats.

Important classes:

qSlicerVolumesIO.[h/cxx]]
vtkSlicerVolumesLogic.[h/cxx]
vtkMRMLVolumeArchetypeStorageNode.[h/cxx]

The following options can be passed to load volumes programmatically:

Option Type Default Description
labelmap bool false Mark the volume a label map
center bool false Discard file origin information and move the center of the volume in 0,0,0
singleFile bool false Load the file as part of a series of 2D files that represent a 3D volume
autoWindowLevel bool true Automatically compute the window level based on the volume pixel intensities
discardOrientation bool false Discard file orientation information