Difference between revisions of "Modules:ExtractSubvolumeROI-Documentation-3.5"

From Slicer Wiki
Jump to: navigation, search
 
(17 intermediate revisions by one other user not shown)
Line 7: Line 7:
 
|[[Image:extractSubvolume1.png|thumb|280px|Input and initialization of SubvolumeExtractROI]]
 
|[[Image:extractSubvolume1.png|thumb|280px|Input and initialization of SubvolumeExtractROI]]
 
|[[Image:extractSubvolume2.png|thumb|280px|Visualization of the extracted subvolume]]
 
|[[Image:extractSubvolume2.png|thumb|280px|Visualization of the extracted subvolume]]
 +
|-
 +
|[[Image:extractSubvolume3.png|thumb|280px|Input ROI is under transform, rotated]]
 +
|[[Image:extractSubvolume4.png|thumb|280px|Visualization of the extracted subvolume]]
 
|}
 
|}
  
Line 28: Line 31:
 
===Examples, Use Cases & Tutorials===
 
===Examples, Use Cases & Tutorials===
  
* Note use cases for which this module is especially appropriate, and/or link to examples.
+
* ExtractSubvolumeROI allows to extract a parallelepiped-shaped subvolume, located arbitrarily within a larger 3D volume. The module allows to control the spacing of the resulting volume, and gives control over the interpolation mode.
* Link to examples of the module's use
+
* The module is particularly useful in cases when the amount of computation or its complexity can be reduced by limiting the processing to the region of interest.
* Link to any existing tutorials
+
* The subvolume produced by the module is located precisely in the space of the original image.
 +
 
  
 
===Quick Tour of Features and Use===
 
===Quick Tour of Features and Use===
List all the panels in your interface, their features, what they mean, and how to use them. For instance:
+
{|
 +
|
 +
 
 +
* '''Input/initialization parameters panel:'''
 +
** '''Input volume''' defines the input image from which you need to extract an ROI
 +
** '''ROI''' is a Region of Interest (see the documentation [[Modules:ROIModule-Documentation-3.4|here]]), which can be defined outside ExtractSubvolumeROI, or by creating new MRMLROINode from the selector menu. The ROI can be adjusted using the widget handles in 3D view panel.
 +
** '''ROI visibility''' allows to turn the visibility of the 3D widget on or off in the 3D view panel.
 +
** '''Output volume''' is the volume node where the result of ROI extraction will be stored. Note, that the output volume cannot be identical to the input volume. The module will give you an error if this is the case.
 +
** '''Input spacing scaling constant''' is the coefficient used to determine the spacing of the output volume. The output spacing is defined by multiplying the input spacing in each dimension by the user-specified coefficient. For example, if the input spacing is 1x1x1.4, and the scaling coefficient is 0.5, the output volume will have spacing 0.5x0.5x0.7, effectively doubling the resolution of the output image.
 +
** '''Isotropic voxel size''' if this checkbox is selected, the output image will have isotropic spacing, with the voxel size equal to the ''minimum'' voxel dimension of the input image multiplied by the scaling constant.
 +
** '''Interpolation type''' allows to select between Nearest Neighbor, Linear or Cubic interpolators. For subvolumes being extracted from a label volume, you should use Nearest Neighbor interpolator. Otherwise Cubic is the preferred choice. Linear interpolator requires less computation, which may be important for very large ROIs.
 +
** '''Do ROI resample''' initiates the subvolume extraction based on the inputs and parameters.
 +
 
 +
* '''Viewing panel:''' The module provides two approaches to change the size and location of the ROI. First, this can be done in 3D View by moving the colored handles of the ROI widget. Second, the ROI can be adjusted in the slice views. ''Right mouse button click'' adjusts the bounds of the ROI. ''Left mouse button click'' moves the center of ROI to be the point where the click was made.
 +
 
 +
* The input volume and input ROI are both allowed to be under linear transform. This allows to extract a parallelepiped shaped ROI, which is arbitrarily oriented within the input volume using these steps:
 +
 
 +
# Create a new Transform in the MRML Tree ([[Modules:Data-Documentation-3.4|Data module]]), or in the [[Modules:Transforms-Documentation-3.4|Transforms module]]
 +
# Drag the input ROI node under the created transform in the MRML tree ([[Modules:Data-Documentation-3.4|Data module]])
 +
# Adjust the rotation of the ROI from the [[Modules:Transforms-Documentation-3.4|Transforms module]]
 +
# Return to ExtractSubvolumeROI, use the ROI from above to extract the subvolume
 +
 
 +
Upon completion of the resampling operation, the input volume is set as the Background image volume, and the extracted resampled ROI is set as the Foreground image.
 +
 
 +
|
 +
{|
 +
|
 +
[[Image:ExtractSubvolumeROI_input_spacing.jpg|thumb|200px|Input image]]
 +
 
 +
|[[Image:ExtractSubvolumeROI_output_spacing.jpg|thumb|200px|Extracted subvolume with scaling constant 0.5 -- note the difference in the image spacing]]
 +
|}
 +
 
 +
{|
 +
|[[Image:ExtractSubvolumeROI_controls.jpg|thumb|250px|ExtractSubvolumeROI control panel]]
  
* '''Input panel:'''
+
|[[Image:ExtractSubvolumeROI_resize.jpg|thumb|200px|Intersection of ROI with the slice is shown in semi-transparent blue]]
* '''Parameters panel:'''
+
|}
* '''Output panel:'''
+
 
* '''Viewing panel:'''
+
|}
  
 
== Development ==
 
== Development ==
  
Major limitations:
+
Standing issues under development:
 
+
* add isotropic resampling mode
* Input volume must be axis-aligned for consistent result.
+
* consider more intuitive in-slice resampling mode; the current one is not quite there when ROI is under transform
* Neither input volume, nor ROI widget can be under a transform in MRML hierarchy
+
* in-slice ROI resizing: resize on Ctrl+click, not just click, otherwise zoom in not possible, not convenient
  
 
===Dependencies===
 
===Dependencies===
  
Volumes module.
+
[[Modules:ROIModule-Documentation-3.4|ROI Module]] and [[Modules:Volumes-Documentation-3.4|Volumes Module]].
  
 
===Known bugs===
 
===Known bugs===
Line 65: Line 102:
 
Source code can accessed [http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/ExtractSubvolumeROI/ here]
 
Source code can accessed [http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/ExtractSubvolumeROI/ here]
  
[http://www.na-mic.org/Slicer/Documentation/Slicer3/html/ Links] to documentation generated by doxygen.
+
[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/ Links] to documentation generated by doxygen.
  
 
== More Information ==  
 
== More Information ==  

Latest revision as of 23:06, 15 January 2010

Home < Modules:ExtractSubvolumeROI-Documentation-3.5

Return to Slicer 3.5 Documentation

Subvolume extraction with ROI widget

ExtractSubvolumeROI

Input and initialization of SubvolumeExtractROI
Visualization of the extracted subvolume
Input ROI is under transform, rotated
Visualization of the extracted subvolume

General Information

Module Type & Category

Type: Interactive

Category: Converters

Authors, Collaborators & Contact

  • Andriy Fedorov, BWH
  • Ron Kikinis, BWH
  • Contact: Andriy Fedorov, fedorov at bwh

Module Description

This module allows to extract rectangular subvolume from an image, with the subvolume defined by Slicer ROI widget.

Usage

Examples, Use Cases & Tutorials

  • ExtractSubvolumeROI allows to extract a parallelepiped-shaped subvolume, located arbitrarily within a larger 3D volume. The module allows to control the spacing of the resulting volume, and gives control over the interpolation mode.
  • The module is particularly useful in cases when the amount of computation or its complexity can be reduced by limiting the processing to the region of interest.
  • The subvolume produced by the module is located precisely in the space of the original image.


Quick Tour of Features and Use

  • Input/initialization parameters panel:
    • Input volume defines the input image from which you need to extract an ROI
    • ROI is a Region of Interest (see the documentation here), which can be defined outside ExtractSubvolumeROI, or by creating new MRMLROINode from the selector menu. The ROI can be adjusted using the widget handles in 3D view panel.
    • ROI visibility allows to turn the visibility of the 3D widget on or off in the 3D view panel.
    • Output volume is the volume node where the result of ROI extraction will be stored. Note, that the output volume cannot be identical to the input volume. The module will give you an error if this is the case.
    • Input spacing scaling constant is the coefficient used to determine the spacing of the output volume. The output spacing is defined by multiplying the input spacing in each dimension by the user-specified coefficient. For example, if the input spacing is 1x1x1.4, and the scaling coefficient is 0.5, the output volume will have spacing 0.5x0.5x0.7, effectively doubling the resolution of the output image.
    • Isotropic voxel size if this checkbox is selected, the output image will have isotropic spacing, with the voxel size equal to the minimum voxel dimension of the input image multiplied by the scaling constant.
    • Interpolation type allows to select between Nearest Neighbor, Linear or Cubic interpolators. For subvolumes being extracted from a label volume, you should use Nearest Neighbor interpolator. Otherwise Cubic is the preferred choice. Linear interpolator requires less computation, which may be important for very large ROIs.
    • Do ROI resample initiates the subvolume extraction based on the inputs and parameters.
  • Viewing panel: The module provides two approaches to change the size and location of the ROI. First, this can be done in 3D View by moving the colored handles of the ROI widget. Second, the ROI can be adjusted in the slice views. Right mouse button click adjusts the bounds of the ROI. Left mouse button click moves the center of ROI to be the point where the click was made.
  • The input volume and input ROI are both allowed to be under linear transform. This allows to extract a parallelepiped shaped ROI, which is arbitrarily oriented within the input volume using these steps:
  1. Create a new Transform in the MRML Tree (Data module), or in the Transforms module
  2. Drag the input ROI node under the created transform in the MRML tree (Data module)
  3. Adjust the rotation of the ROI from the Transforms module
  4. Return to ExtractSubvolumeROI, use the ROI from above to extract the subvolume

Upon completion of the resampling operation, the input volume is set as the Background image volume, and the extracted resampled ROI is set as the Foreground image.

Input image
Extracted subvolume with scaling constant 0.5 -- note the difference in the image spacing
ExtractSubvolumeROI control panel
Intersection of ROI with the slice is shown in semi-transparent blue

Development

Standing issues under development:

  • add isotropic resampling mode
  • consider more intuitive in-slice resampling mode; the current one is not quite there when ROI is under transform
  • in-slice ROI resizing: resize on Ctrl+click, not just click, otherwise zoom in not possible, not convenient

Dependencies

ROI Module and Volumes Module.

Known bugs

Follow this link to the Slicer3 bug tracker.


Usability issues

Follow this link to the Slicer3 bug tracker. Please select the usability issue category when browsing or contributing.

Source code & documentation

Source code can accessed here

Links to documentation generated by doxygen.

More Information

Acknowledgment

Supported by Brain Science Foundation.

References