16. Volume

Warning

12.1.2021 – THIS PAGE IS UNDER CONSTRUCTION.

USERS ARE URGED TO KEEP COPIES OF THEIR DATA, BECAUSE SEVERAL COMMANDS IN THE VOLUME GROUP MODIFY IMAGES IN THE ACTIVE LAYER.

The Volume tab offers commands for manipulating 3D and 4D datasets. This includes cropping, signal scaling, smoothing, application of edge-enhancing filters and so on. Also included in this tab are tools for conversion of numeric data type between integer and real and changing data dimensions.

16.1. Window Center\Level setting

CHANGE TO: Window Center/Width

See also View > Grayscale Window, for details of grayscale window center and width.

16.1.1. Optimal for All

DEFINE Optimal

Automatically changes grayscale window center and width to the values optimal for viewing of all time frames for a dynamic dataset.

16.1.2. Optimal for current point

Automatically adjusts window center and width to the values optimal for viewing of the current time frame. May be convenient for viewing dynamic series in which image intensity varies in a wide range, such as dynamic contrast-enhanced MRI or CT images that show blood vessels during passage of the contrast bolus.

16.1.3. Optimal for current slice (currently unavailable)

REMOVE?

16.2. Advance to (timepoint)

Commands in this group help to navigate to an automatically selected time frame of a dynamic dataset.

16.2.1. Timepoint of Maximum Info over ROI

DEFINE: Information

Selects and displays the time frame with the maximum information within a raster ROI. Requires a dynamic dataset and a single raster ROI. If the document contains two or more ROI layers, shows an error message (Ambiguous layer configuration).

VERIFY If the document contains no visible ROI, displays the time frame with the maximum information for the entire image.

16.2.2. Timepoint of Vector ROI peak

Selects and displays the time frame showing maximum image intensity within the active vector ROI. If no VROIs are present, or multiple VROIs are present, but none is selected, FireVoxel will show a corresponding error message (if no VROIs: At least one seed is expected; if multiple VROIs, none selected: With several seeds present, a single one should be selected).

16.3. Crop

Selects a user-specified subset of the original dataset. Creates a new document, named [original]_cropped displaying the selection.

16.3.1. Crop with 4D Vector ROI – Active Layer only

Requires an image and an active (selected) vector ROI (VROI). Selects a part of the active layer within a user-defined vector ROI. The active layer may contain an image (3D or 4D), raster ROI (3D or 4D), or a color map.

An active VROI shows green handles on the top right and bottom left corners. The VROI may be defined on a single dynamic frame (3D) or extended to multiple dynamic frames (4D). If multiple VROIs are present in the document, but none is selected, shows an error message (More than one Vector ROI is present and none selected). See Vector for details on creating and manipulating VROIs.

The cropped document contains the part (intersection) of only the active layer of the original document inside the VROI.

If the document contains multiple layers, they are not included into the cropped document. To crop multiple layers, use Crop with 4D Vector ROI - All Layers.

16.3.2. Crop with 4D Vector ROI – All Layers

Requires a 3D or 4D image and an active (selected) vector ROI (VROI). Selects part of the image contained within the vector ROI from all layers in the active document. These layers may contain images, raster ROIs (3D or 4D), or color maps.

An active VROI shows green handles on the top right and bottom left corners. The VROI may be defined on a single dynamic frame (3D) or extended to multiple dynamic points (4D). If multiple VROIs are present in the document, but none is selected, shows an error message (More than one Vector ROI is present and none selected). See Vector for details on creating and manipulating VROIs.

The cropped document contains the part (intersection) of all layers (visible and invisible) inside the VROI, including images and ROIs.

16.3.3. Crop current timepoint

Requires a 4D dynamic image (4D = 3D + dynamic variable). Selects a single 3D volume at the current value of dynamic variable (shown at the bottom left corner of the document window). The cropped document shows the selected 3D volume and all other visible layers from the original document. The layers that are invisible in the original document are not included into the cropped document. The original document remains unchanged.

All visible raster ROI layers are replicated in the cropped document. Vector ROIs are not retained.

16.3.4. Crop current slice

Requires a 3D or 4D image in the active document window. Selects the current slice (e.g., slice number P) from the original document. Creates a new document labeled [original]_slP showing the selected slice. If the original document contains a 3D image, the cropped image is a 2D slice. If the original document contains a 4D image, the cropped image is a 2D slice at all dynamic points from the original document. All visible raster layers and vector ROIs will be replicated in the cropped document.

16.3.5. Extract specified dynamic points

Requires a 4D image. Opens a dialog prompting the user to enter the indices of dynamic variable to be selected. These indices may be separated by commas (e.g, 1, 3, 9), to select individual dynamic frames, or by dashes (e.g., 1-10) to select a range of indices.

Creates a new document, labeled [original]_cropped with a 4D image that includes the 3D volumes with the specified dynamic variable indices. For example, if the user selects time points 1, 3, 9, the cropped image will contain volumes at time points number 1, 3, and 9. If the user selects time points 1-10, the cropped image will contain the first ten images of the dynamic series.

16.3.6. Remove specified dynamic points

Requires a 4D image. Opens dialog prompting the user to enter the index (or indices) of dynamic variable of the 3D volumes to be removed. Creates a new document labeled [original]_cropped with a 4D document in which the specified dynamic images are absent.

If the dynamic variable is time (with the time points from t1=0 s to tN), and the first K points are removed [t1,tK], the time points of the remaining images [tK+1,tN] are adjusted by subtracting tK+1 so that the time points of the cropped image are in the interval of [0 s, tN - tK+1].

16.4. Pad

Requires an image in the active layer. Opens dialog (Specify Pad size (mm)) to enter the padding size in millimeters. Creates a new document window named [active_window]_pad with the padded image. Padded image has zero intensity voxels added to each dimension of the original volume. The dimensions of the padded image are (w+p, h+p, d+p), where w, h, and d are the width, height and depth of the original image (in mm), and p is the pad size. If the image is 4D, each frame of the dynamic series is padded. The voxel size of the padded image is the same as the resolution of the original image. The matrix of the padded image is increased by the number of added padding voxels.

16.5. Noise and Air

RENAME? Noise

Provide noise measurements using different methods and display results. Returns results in FireVoxel image processing dialog. Use Ctrl+C, Ctrl+V to copy and paste the result elsewhere.

16.5.1. Effective Noise

Returns the value of effective noise. HOW IS EFFECTIVE NOISE DEFINED?

16.5.2. Background Noise

Returns the value of background noise. HOW IS BACKGROUND NOISE DEFINED?

16.5.3. Noise: Median

Returns the value of median noise. HOW IS MEDIAN NOISE ESTIMATED? HISTOGRAM > MEDIAN?

16.5.4. Noise: Local Difference 2D

Returns the value of local difference. HOW IS THE LOCAL DIFFERENCE ESTIMATED?

16.5.5. Non-local Means Denoising

Applies a non-local means filter to the image. Creates a new layer in the same document window with the denoised image. If the image is dynamic, applies denoising to every dynamic frame.

ADD DETAILS OF THE FILTER The non-local means filter takes the mean of all voxels in the image weighted by the similarity of these voxel’s intensity to the intensity of the target voxel.

16.6. Smooth

16.6.1. Smooth over (optional) ROI

Volume Smooth parameter dialog

Fig. 16.1 Volume Smooth parameter dialog in default state.

Opens dialog (Volume Smooth parameters, Fig. 16.2) to specify the parameters of a smoothing filter. Options include: Process 3D (checkbox), Kernel type (7 options), and kernel radius (in voxels, 2 voxels by default). (Constrain by mask option is currently inactive.)

Process 3D checkbox selects spherical (3D, if checked) or circular (2D, if unchecked) smoothing.

The kernel types include: Uniform (default), Gaussian, Radial, Raleigh, Median, Minimal SI, and Maximal SI.

Applies smoothing filter with specified parameters to the active layer. Smoothing may be applied to an image layer (real or integer valued) or an ROI layer. The resulting smoothed layer is placed into a new layer. The output layer is named DICOM[n] (n=0,1,2,3…). Smoothing is done by convolving the image with a normalized 3D spherical (if 3D smoothing is selected) or circular (if 2D is selected) kernel, or filter.

VERIFY: For a dynamic dataset, each dynamic frame is smoothed independently.

As an example, consider a 2D uniform (kernel type: Uniform) smoothing using a filter with the radius of 2 voxels. FireVoxel convention is to define a single voxel as having the radius equal to 0. This means that the diameter of the circle of radius 2 voxels is 5 voxels (diameter = 2 x radius + 1). The “circular” and symmetric kernel with weights k_i, i=1:4, is shown below:

(16.1)M =
     \begin{bmatrix}
         0   & 0   & k_4 & 0   & 0 \\
         0   & k_3 & k_2 & k_3 & 0 \\
         k_4 & k_2 & k_1 & k_2 & k_4 \\
         0   & k_3 & k_2 & k_3 & 0  \\
         0   & 0   & k_4 & 0   & 0
     \end{bmatrix}

In this example, the kernel has 13 non-zero weights. Since the kernel is uniform, k_1=k_2=k_3=k_4. All smoothing kernels are normalized, meaning that the sum of 13 weights is 1.0. So in this example all k_i weights are equal to 1/13 \approx 0.076923.

The smoothing operation works as follows. The kernel is positioned so that the central element k_1 is above a target voxel. The values of 25 image voxels located under this kernel are multiplied by the corresponding weights k_i and all products are summed. The resulting sum is the voxel value of the target voxel in the smoothed image. The kernel is then moved to the next voxel and the process is repeated until the entire smoothed image is computed.

For the uniform kernel, the weights k_i are all equal, and as a result, the smoothed voxel is the average of its 13 neighboring voxels. For the Gaussian kernel, the weights k_i are given by the values of a Gaussian function.

16.7. Smooth across Dynamic dimension

Opens dialog (Specify integer) allowing the user to select Dynamic Smooth Radius, or the number of dynamic frames over which the intensity will be smoothed. Creates a new layer placed on top of all existing layers, with smoothed intensity.

HOW IS SMOOTHING DONE?

16.8. Volume Edge constrained Smooth

ISSUE B364A: CRASH WITH 3D FLAIR or 4D DCE MRI DATASET

Opens a dialog panel (Edge Constrained Smooth, Fig. 16.2):

Volume Edge constrained smooth dialog

Fig. 16.2 Volume Edge constrained smooth dialog with default settings.

This dialog leas to a secondary dialog for Edge Settings (3D Edge Detector, Fig. 16.3):

3D Edge Detector panel

Fig. 16.3 3D Edge Detector panel with default settings.

16.9. Inter-Volume Edge Constrained Smooth

Inter-Volume Edge Constrained Smooth [content]

16.10. Texture Edge Detector with optional Constraint ROI

Texture Edge Detector with optional Constraint ROI [content].

16.11. Texture Gradient

Texture Gradient [content].

16.12. Multiscale Texture Gradient

Multiscale Texture Gradient [content].

16.13. Multiscale Texture Gradient with 4D Aggregate

Multiscale Texture Gradient with 4D Aggregate [content].

16.14. Depth to Time

Requires a 4D image with dimensions W x H x D x N, where W, H, and D are width, height and depth, respectively, and N is the number of dynamic frames. Opens a new document window named [active_window]_DtoT displaying the current dynamic frame as W x H x 1 x D image. To scroll through slices, the user may use Right and Left arrow keys on the keyboard.

If applied again to the W x H x 1 x D image, opens a new document window with W x X x 1 x 1 image displaying only the current slice.

16.15. Time to Depth

Requires a single slice across multiple dynamic points, W x H x 1 x N (for other dimensions, shows an error message, “Volume should contain a single z-slice.”) Opens a new document window named [active_window]_TtoD with reformatted image with dimensions W x H x N x 1. If used again on this image, shows an error message, “4D volume required.”

16.16. Copy voxels from current timepoint to target timepoint

Opens dialog (Specify Integer) to enter the target dynamic point index where the current dynamic frame will be copied. Copies, voxel-by-voxel, the current 3D dynamic frame onto the specified dynamic frame. Note: There is no “undo” option for this command.

16.18. Convert 2D Mosaic to Volume

VERIFY

Requires a mosaic image (p * W) x (q * H).

Opens dialog (Specify Integer) prompting the user to enter the number of images in the mosaic, M. Opens a new document window with a reformatted image. The reformatted has dimensions of W x H x M.

16.19. Volume type conversion

These commands convert images into different data types. Converted images are placed in new, automatically created layers.

16.19.1. Real to integer

Requires a visible real-valued image (in the active layer or another layer). Opens dialog (Specify Integer) to enter the number of Resulting Bits for integer-valued image (15 by default). Creates a new layer in the active document window (named [original_layer]_PMtoSI - for “parametric map to signal intensity” VERIFY) with the original layer converted to integer-valued image. The new layer is displayed with the same window width and level as the original layer.

If the active layer is not a real-valued image and there are no other visible real-valued layers, an error message is shown, (Real valued volume is required). If the active layer is not a real-valued image, but there are two or more visible real-valued layers, the first visible layer (as listed in the Layer Control) is converted.

16.19.2. Integer to real

Requires integer-valued image in the active layer. Creates a new layer (named [original_layer]_real) containing the original layer converted to a real-valued image.

If the active layer is not an integer-valued image, an error message is shown (“Signal intensity volume is required”).

16.19.3. ROI to integer

Requires a visible ROI layer. Creates a new layer (named [original]_integer) with voxel values obtained from the voxel values of the original layer converted to integer signal intensity. The new layer is displayed as a rainbow colormap with the window widthlevel of 10.5 and opacity of 100%.

If the active layer is not an ROI layer, an error message is shown (“Signal intensity volume is required”).:red:ISSUE: Wrong dialog

16.20. Voxel Value Conversion

These commands transform voxel signal intensities. Note: Most of these commands change voxel intensities in the original layer. Users are advised to create copies of original layers using Layer Control > Duplicate and first test these commands using these copies.

16.20.1. Flatten histogram

VERIFY

Requires an image in the active layer. Opens dialog (Specify Integer) prompting the user to enter the number of histogram levels, M. Creates a new layer in the same document window (named the same way as the original layer).

The new layer contains a transformed image, in which voxel signal intensities are normalized by |Smax - Smin| x (M-1). Normalized intensities are binned into M levels and voxel values are replaced with the intensity of the bin center.

The distribution of intensities of the resulting image may be examined using Layer Control > ROI Stats 3D.

16.20.2. Linear conversion over ROI

VERIFY

Requires an image layer in the active document.

Note: The command changes the voxel values in the original image to the converted values. If unsure of the conversion parameters, duplicate the image layer and test conversion on this copied layer to avoid reloading the original images.

May be used with a visible raster ROI layer. If a visible ROI is not present, or if there are two or more visible ROIs in the document, the conversion is applied to the entire image.

Opens dialog (Linear Conversion, Fig. 16.4) prompting the user to specify the parameters of linear conversion: S1 = C x S0 + B, where C is the coefficient, B is the bias, and converted S1 is restricted to the interval of user-specified [Low Limit, High Limit]. Converted voxel intensities below or above the interval limits are replaced by the Low Limit or High Limit, respectively.

The voxel intensities of the original image (S0) are replaced with the transformed values (S1) only within the ROI (if the ROI is present) or within the entire image (if an ROI is not present).

Voxel value linear conversion over ROI

Fig. 16.4 Voxel value linear conversion over ROI.

16.20.3. Invert

VERIFY

Requires an image in the active document. Replaces original voxel intensities S0 with symmetrical intensities about the middle of the interval [S0min, S0max].

The distributions of the original and inverted signal intensities can be examined using the histogram using ROI Stats 3D.

Note: This command changes the actual voxel intensities. To modify only the appearance of the image, use Layer Control > View Filter and check Invert Scale checkbox. This option inverts the grayscale (the order of gray values) without changing the intensities of the image itself.

16.20.4. Logarithm Conversion

Requires an image in the active layer. Creates a new, real-valued layer in which voxel intensities S1 are a log function of the original intensities S0: S1= log(S0). By default, the new layer is displayed as a rainbow color map.

16.20.5. Scale to Interval

VERIFY

Requires an image (integer or real) in the active layer. Transforms voxel intensities of the original image, S0, and replaces them with transformed intensities S1. Opens dialog (Specify Signal Range) prompting the user to enter [S1min, S1max], the minimum and maximum values of the transformed signal intensity.

The original voxel intensities in the active layer, S0, are replaced with transformed intensities S1 = S1min + (S0 - S0min) x (S1max - S1min)/(S0max - S0min).

16.20.6. Change Specified Signal to Transparent

FIX DIALOG TITLE - Specify Make Specified Signal Transparent

Requires an image in the active layer. Opens dialog (Specify Make Specified Signal Transparent) allowing the user to enter signal intensity value to be replaced with a transparent voxel. Replaces voxels with user-specified intensities with transparent voxels.

16.20.7. Change Transparent to Specified Signal

FIX INTERFACE - DIALOG - New value for _tansparent_ signal

Requires an image in the active layer, presumably with transparent voxels. Opens dialog (Specify New value for transparent signal) allowing the user to enter the signal intensity value that would be assigned to transparent voxels. Replaces transparent voxels with opaque voxels with user-specified intensity.

16.21. Change Patient Position and Orientation

ADD DETAIL AND VERIFY

Specify Image Position\\Orientation Patient panel

Fig. 16.5 Specify Image PositionOrientation Patient panel.

Opens dialog (Specify Image PositionOrientation Patient, Fig. 16.5) to change the position and orientation of the patient.

The Position and Orientation coordinates are read from DICOM header (20,0032 ImagePositionPatient (for starting slice) and 20,0037 Image OrientationPatient). Clicking Align with scanner changes the orientation (in agreement with patient position FFS?) [1,0,0,0,-1].

Options for Volume orientation for each axis include swapping A>P, I>S, L>R, P>A, R>L, S>I (A and P – anterior and posterior, I and S – inferior and superior, L and R – left and right).

16.22. Set DICOM tags

Opens dialog (Specify string) to enter MRI sequence parameters. Modality is not checked. The new values overwrite the original value of the corresponding DICOM field.

16.22.1. Set TR (Repetition time)

Enter TR in ms. The new value is written into DICOM field 18,0080 RepetitionTime.

16.22.2. Set TR (Echo time)

Enter TE in ms. The new value is written into DICOM field 18,0081 EchoTime.

16.22.3. Set FA (Flip angle)

Enter Flip Angle in degrees. The new value is written into DICOM field 18,1314 FlipAngle.

16.23. Set Volume Orientation

Opens dialog (Specify string) prompting the user to enter a sequence of four letters, specifying orientation of the volume with respect to the screen directions, [Top, Bottom, Left, Right]. For example, if the user enters LRAP, the top of the screen will become L, bottom - R, left - A, right - P (NEED EXAMPLE).