dicom2nifti Documentation

repository·main·Indexed 19 days ago

https://github.com/icometrix/dicom2nifti

A Python library for converting DICOM files into NIfTI format, supporting anatomical and 4D imaging data such as fMRI and DTI. It provides a command-line interface and a Python API featuring convert_directory and dicom_series_to_nifti. The tool includes options for handling gantry tilted CT data, inconsistent slice increments, and single slice images.

Tokens
1.4K
Snippets
7
Records
7
Agent score
14%

What's inside dicom2nifti

  1. Allow Single Slice conversion

    main

    By default, dicom2nifti does not convert single slice images. You can explicitly enable this via the CLI or by modifying settings in Python.

    # CLI approach
    dicom2nifti -S input_directory output_directory
    import dicom2nifti
    import dicom2nifti.settings as settings
    
    settings.disable_validate_slicecount()
    dicom2nifti.convert_directory(dicom_directory, output_folder)
  2. Handle Inconsistent Slice Increments

    main

    Support for inconsistent slice increments is disabled by default. To allow these images, you should enable resampling to avoid geometric distortions. You must configure the padding value and spline interpolation order.

    # CLI approach
    dicom2nifti -I -r -o 1 -p -1000 input_directory output_directory
    import dicom2nifti
    import dicom2nifti.settings as settings
    
    settings.disable_validate_slice_increment()
    settings.enable_resampling()
    settings.set_resample_spline_interpolation_order(1)
    settings.set_resample_padding(-1000)
    
    dicom2nifti.convert_directory(dicom_directory, output_folder)
  3. Handle Gantry Tilted CT data

    main

    By default, dicom2nifti validates image orthogonality and disables support for gantry tilted CT. To process this data, you must disable validation and optionally enable resampling to create an orthogonal NIfTI.

    Important: When using orthogonal resampling, the output NIfTI will always be reoriented. You should configure the padding value and spline interpolation order.

    # CLI approach
    dicom2nifti -G -r -o 1 -p -1000 input_directory output_directory
    import dicom2nifti
    import dicom2nifti.settings as settings
    
    settings.disable_validate_orthogonal()
    settings.enable_resampling()
    settings.set_resample_spline_interpolation_order(1)
    settings.set_resample_padding(-1000)
    
    dicom2nifti.convert_directory(dicom_directory, output_folder)
  4. Install dicom2nifti

    main

    You can install dicom2nifti using either conda or pip.

    Note on compressed formats: To support compressed DICOM formats like JPEG and JPEG2000, you must also install gdcm in combination with pydicom.

    # Using conda
    conda install -c conda-forge dicom2nifti
    
    # Using pip
    pip install dicom2nifti
  5. Use dicom2nifti via Python API

    main

    You can integrate dicom2nifti into your Python workflows using two primary methods:

    1. convert_directory: Converts an entire directory containing multiple DICOM series into NIfTI files.
    2. dicom_series_to_nifti: Converts a directory containing exactly one DICOM series into a single NIfTI file.
    import dicom2nifti
    
    # Convert a directory with multiple series
    dicom2nifti.convert_directory(dicom_directory, output_folder, compression=True, reorient=True)
    
    # Convert a directory with only 1 series to 1 nifti file
    dicom2nifti.dicom_series_to_nifti(original_dicom_directory, output_file, reorient_nifti=True)
  6. Use dicom2nifti via Command Line

    main

    The dicom2nifti CLI tool allows you to convert DICOM directories to NIfTI format.

    Usage: dicom2nifti [options] input_directory output_directory

    Available Flags:

    • -h: Show help
    • -G: Allow gantry tilted CT
    • -r: Enable resampling
    • -o RESAMPLE_ORDER: Set resampling spline interpolation order
    • -p RESAMPLE_PADDING: Set resampling padding value
    • -M: (Not explicitly detailed in help summary, but available)
    • -C: (Not explicitly detailed in help summary, but available)
    • -R: (Not explicitly detailed in help summary, but available)
    • -I: Allow inconsistent slice increments
    • -S: Allow single slice images
    dicom2nifti [-h] [-G] [-r] [-o RESAMPLE_ORDER] [-p RESAMPLE_PADDING] [-M] [-C] [-R] input_directory output_directory
    
    # Example: Allow gantry tilted CT with resampling
    dicom2nifti -G -r -o 1 -p -1000 input_directory output_directory