Image Processing Features
dcm2niix provides advanced image processing capabilities for handling medical imaging data during conversion.
Capabilities
16-Bit Range Scaling
Control dynamic range optimization for 16-bit integer data.
16-bit range scaling options:
y = losslessly scale to use full dynamic range (INT16: -32768 to 32767)
n = no scaling, but convert UINT16 to INT16
o = original, preserve exact values and data type (default)
Why This Matters:
- Many DICOM images use only a small portion of the 16-bit range
- Scaling improves visualization and reduces quantization artifacts
- "Lossless" means the original intensities can be recovered using stored scale factors
Use Case:
o (default): Preserves original DICOM pixel values exactly, best for quantitative analysis
y: Maximizes dynamic range for visualization, improves contrast in narrow-window images
n: Converts unsigned to signed integers without scaling
3D Acquisition Cropping
Remove excess slices from 3D acquisitions.
Crop 3D acquisitions:
y = crop excess slices from 3D volumes
n = don't crop (default)
i = ignore (neither crop nor rotate 3D acquisitions)
What This Does:
- Detects and removes padding slices added by scanner
- Identifies non-zero content boundaries
- Reduces file size and processing time
- Improves alignment across sequences
When to Use:
- 3D MPRAGE, SPACE, or other volumetric acquisitions with black borders
- Multi-slab acquisitions with overlapping slices
- High-resolution structural scans with over-sampling
3D Acquisition Rotation
Apply proper anatomical orientation to 3D volumes.
Controlled via -x option:
- By default, 3D acquisitions are rotated to proper orientation
-x i disables both cropping and rotation
-x n disables cropping but keeps rotation
Why This Matters:
- Ensures consistent anatomical orientation across datasets
- Aligns volumes to RAS+ coordinate system (Right-Anterior-Superior)
- Corrects for unusual acquisition orientations
CT Gantry Tilt Correction
Automatically correct for CT gantry tilt.
# Enabled by default, no flag required
# To disable, use compile-time option or modify defaults
What This Does:
- Detects gantry tilt angle from DICOM tag (0018,1120)
- Resamples volume to remove shearing effect
- Creates true rectilinear grid
When Applied:
- CT scans with non-zero gantry tilt
- Common in head CT to reduce lens radiation exposure
- Results in
_Tilt postfix on output filename
Slice Reslicing
Convert non-equidistant slices to equidistant volumes.
# Automatic when variable slice spacing detected
# Results in _Eq postfix
What This Does:
- Detects variable spacing between slices
- Resamples to create uniform slice spacing
- Enables proper 3D visualization and analysis
When Applied:
- Variable slice thickness/spacing in DICOM series
- Partial Fourier acquisitions
- Some multi-slice sequences
Indicator:
_Eq postfix added to output filename
Y-Axis Flipping
Convert DICOM coordinate system to Cartesian (neurological convention).
# Enabled by default (isFlipY = true)
# Converts DICOM L-P-S to NIfTI R-A-S+
What This Does:
- Flips Y-axis to match neurological convention
- DICOM uses LPS (Left-Posterior-Superior)
- NIfTI uses RAS+ (Right-Anterior-Superior, Cartesian)
- Ensures proper left/right orientation
Philips Precise Float Scaling
Use true floating-point values instead of display scaling for Philips MRI.
Philips precise float scaling:
y = use precise floating-point values (default, recommended)
n = use display scaling values
Why This Matters:
- Philips DICOM includes two scaling factors: true values (RWV) and display values
- Display scaling optimizes for visual appearance
- Precise scaling preserves quantitative accuracy
- Critical for quantitative imaging (ADC, T1/T2 mapping, pharmacokinetic modeling)
Recommended:
- Always use
-p y for quantitative analysis
- Display scaling suitable only for qualitative review
Complex Image Handling
Automatic separation of complex-valued MR data.
# Automatic processing, no flag required
# Produces separate files with postfixes
What This Does:
- Detects complex-valued images (magnitude/phase, real/imaginary)
- Separates components into individual files
- Adds appropriate postfixes:
_real, _imaginary, _ph, _phMag
Output Types:
_real.nii - Real component
_imaginary.nii - Imaginary component
_ph.nii - Phase map (wrapped, radians)
_phMag.nii - Phase and magnitude combined as 4D volume
Field Map Handling:
- Philips B0 field maps exported as
_fieldmaphz.nii (Hz units)
RGB Color Image Handling
Process color images (e.g., photographs, color Doppler).
# Automatic, controlled by isRGBplanar setting (default: false)
# Uses NIfTI RGB format
What This Does:
- Detects RGB color images (photometric interpretation = RGB)
- Converts to NIfTI RGB24 data type
- Preserves color information
Format:
- Default: RGB interleaved (NIfTI standard)
- Can be set to planar (R, G, B as separate volumes) via config
Motion Correction Detection
Identify motion-corrected variants.
# Automatic detection from DICOM ImageType
# Adds _MoCo postfix
What This Does:
- Detects motion-corrected acquisitions from ImageType tag
- Labels with
_MoCo postfix
- Helps distinguish original from processed data
Multi-Echo Separation
Separate multi-echo acquisitions into individual files.
# Automatic, no flag required
# Produces _e1, _e2, _e3... postfixed files
What This Does:
- Detects multiple echo times in series
- Creates separate NIfTI file for each echo
- Postfixes:
_e1.nii, _e2.nii, etc.
Use Cases:
- T2* mapping
- Quantitative susceptibility mapping (QSM)
- Multi-echo BOLD fMRI
Multi-Coil Separation
Extract individual coil elements from uncombined data.
# Automatic when uncombined coil data detected
# Produces _c1, _c2, _c3... postfixed files
What This Does:
- Detects uncombined coil array data
- Separates each coil element into individual file
- Postfixes:
_c1.nii, _c2.nii, ..., _c32.nii (for 32-channel array)
Use Cases:
- Advanced reconstruction algorithms
- Coil sensitivity map generation
- Parallel imaging research
DICOM Overlay Extraction
Extract DICOM binary overlays (ROIs) to separate NIfTI files.
# Automatic when overlays present (DICOM group 0x6000)
# Produces _ROI1, _ROI2... postfixed files
What This Does:
- Detects DICOM binary overlays (up to 16 layers)
- Extracts each overlay as separate binary mask
- Postfixes:
_ROI1.nii, _ROI2.nii, ..., _ROI16.nii
Use Cases:
- ROI analysis masks
- Segmentation results stored in DICOM
- Contours and annotations
Slice Timing Correction Information
Extract slice timing for fMRI analysis.
# Automatic extraction to BIDS JSON
# Field: SliceTiming array
What This Does:
- Detects slice acquisition timing from DICOM headers
- Stores timing in BIDS JSON
SliceTiming field
- Array of slice acquisition times relative to TR
Use Cases:
- Slice timing correction in fMRI preprocessing
- Accurate temporal modeling
Gradient Nonlinearity Correction Detection
Identify gradient nonlinearity corrected images.
# Automatic detection from ImageType
# Stored in BIDS JSON: "NonlinearGradientCorrection": true
What This Does:
- Detects whether gradient distortion correction was applied by scanner
- Records status in BIDS JSON
- Helps avoid double-correction in analysis pipelines
Usage Examples
Maximize 16-Bit Dynamic Range
dcm2niix -l y /input/folder
Losslessly scales data to use full INT16 range (-32768 to 32767).
Preserve Original Pixel Values
dcm2niix -l o /input/folder
No scaling, preserves exact DICOM pixel values (default, best for quantitative work).
Crop 3D MPRAGE
dcm2niix -x y /3d/mprage/folder
Removes excess slices from 3D structural acquisition.
Philips Quantitative Imaging
dcm2niix -p y -l o /philips/dwi/folder
Use precise float scaling and preserve original values for quantitative DWI/DTI.
Disable 3D Rotation and Cropping
dcm2niix -x i /input/folder
Leaves 3D acquisitions in original orientation without cropping.
Process Complex GRE
dcm2niix /complex/gre/folder
Automatically separates into _real.nii, _imaginary.nii, _ph.nii files.
Extract Multi-Echo Data
dcm2niix /multi/echo/fmri
Creates separate files: bold_e1.nii, bold_e2.nii, bold_e3.nii.
Uncombined Coil Data
dcm2niix /uncombined/coil/array
Generates individual coil files: scan_c1.nii through scan_c32.nii.
Processing Pipeline Summary
When converting DICOM to NIfTI, dcm2niix applies these steps in order:
- DICOM Header Parsing - Extract metadata and image parameters
- Transfer Syntax Decompression - Decompress JPEG, JPEG2000, RLE, etc.
- Slice Ordering - Reorder slices to proper spatial sequence
- Volume Assembly - Combine 2D slices into 3D/4D volumes
- Reslicing (if needed) - Create equidistant slices from variable spacing
- Tilt Correction (CT only) - Remove gantry tilt shearing
- Cropping (if
-x y) - Remove excess slices from 3D volumes
- Rotation (3D volumes) - Apply proper anatomical orientation
- Complex Separation (if applicable) - Split magnitude/phase or real/imaginary
- Multi-Echo Separation (if applicable) - Create separate echo files
- Multi-Coil Separation (if applicable) - Extract individual coil elements
- Scaling (if
-l y/n) - Apply 16-bit range optimization
- Y-Axis Flip - Convert DICOM LPS to NIfTI RAS+ coordinates
- NIfTI Generation - Write final NIfTI file(s)
- BIDS JSON Generation (if
-b y) - Create metadata sidecar
- Overlay Extraction (if present) - Save DICOM overlays as separate ROI files
Notes
- Image processing is performed losslessly when possible (e.g., reslicing, tilt correction)
- Original DICOM pixel data can be reconstructed using stored scale factors
- Processing decisions are based on DICOM header tags and ImageType values
- Some operations (cropping, reslicing) use interpolation and are not perfectly reversible
- Complex separations and multi-echo splits are automatic; no user control needed
- Postfixes indicate processing applied:
_Eq, _Tilt, _MoCo, _e1, _c1, etc.