---
id: gh-dicom-series-to-volume
name: "dicom-series-to-volume"
url: https://skills.yangsir.net/skill/gh-dicom-series-to-volume
author: nvidia
domain: healthcare
tags: ["dicom", "nifti", "ct", "medical-imaging", "conversion"]
install_count: 1900
rating: 4.30 (120 reviews)
github: https://github.com/nvidia/skills/tree/main/skills/dicom-series-to-volume
---

# dicom-series-to-volume

> 该 Skill 将单序列 CT DICOM 文件夹转换为 HU 单位的 NIfTI 体积，自动应用窗宽窗位并提取仿射变换信息。适用于医学影像预处理、分割模型输入构建等场景，显著减少手动转换的繁琐与错误。

**Stats**: 1,900 installs · 4.3/5 (120 reviews)

## Before / After 对比

### DICOM 转 NIfTI 转换效率

**Before**:

在没有这个技能之前，开发者需要手动调用 dcm2niix 等工具，编写脚本处理 Rescale 参数和仿射矩阵，通常耗时 30 分钟以上，且容易因参数错误导致体积变形。

**After**:

此 Skill 一键执行，自动处理 DICOM 头解析与转换，单次转换仅需 2 分钟左右，输出标准 NIfTI 文件及验证 JSON，质量可靠。

| Metric | Before | After | Change |
|---|---|---|---|
| 转换时间 | 30分钟 | 2分钟 | -93% |

## Readme

# dicom_series_to_volume

## Purpose
- Used for converting one CT DICOM series folder to a HU NIfTI volume with affine evidence. Not for multi-frame DICOM or clinical use.
- Use the wrapper exactly as documented; do not replace the upstream entrypoint with a handwritten implementation.
- Manifest I/O: inputs are `dicom_dir`; outputs are `nifti_volume` and `result_json`.

## Instructions
- Read `skill_manifest.yaml` before changing arguments, side effects, or validation gates.
- Run `scripts/series_to_volume.py` through the documented command below; keep outputs under a caller-provided run directory.
- If a host agent exposes `run_script`, use `run_script("scripts/series_to_volume.py", args=[...])`; otherwise run the Bash/Python command shown below.
- Check the emitted JSON and the paired `dicom_volume_quality_v1` verifier before treating the run as evidence.

## Available Scripts
| Script | Purpose | Arguments |
|---|---|---|
| `scripts/series_to_volume.py` | Primary entrypoint declared by skill_manifest.yaml. | `PATH_TO_DICOM_DIR [--output OUT.nii.gz]` |

## Prerequisites
- Runtime requirements: Python packages listed in `runtime.side_effects.pip_packages`.
- Run commands from the repository root unless an existing section below says otherwise.

## Limitations
- Single-series only; multi-series input is rejected at preflight.
- Multi-frame DICOM (NumberOfFrames > 1 per file) not supported.
- Compressed transfer syntaxes (JPEG / JPEG2000 / RLE) not supported.
- No voxel reorientation. The affine is derived from DICOM headers and represented in NIfTI/RAS coordinates; a downstream gate (e.g. expected_axcodes) is expected to assert orientation before this volume is fed to a segmentation model.
- Not for clinical deployment, autonomous diagnosis, regulatory submission, production inference (use a vetted converter such as dcm2niix for that).

## Troubleshooting
| Error | Cause | Fix |
|---|---|---|
| Missing dependency or import error | Runtime package drift from `skill_manifest.yaml`. | Install the packages declared in the manifest or use the documented setup command. |
| Empty or schema-invalid output | Wrong input path, unsupported modality, or upstream failure. | Re-run with a known fixture and inspect the wrapper JSON plus stderr. |
| Validation gate failure | Output violated a declared engineering invariant. | Keep the failed evidence pack and use the gate message to repair inputs or wrapper code. |

Reads one DICOM series, sorts slices by `ImagePositionPatient`, applies
`RescaleSlope` and `RescaleIntercept`, builds an affine from orientation and
spacing tags, and writes a `.nii.gz` plus JSON summary.

```bash
python scripts/series_to_volume.py PATH_TO_DICOM_DIR --output PATH_TO_OUT.nii.gz
```

For a trusted run with the paired verifier:

```bash
python -m eval_engine.run_trusted skills/dicom-series-to-volume \
  --fixture PATH_TO_DICOM_DIR \
  --out runs/dicom_series_to_volume_trusted
```

Key output fields: `n_slices`, `series_instance_uid`, `output.path`,
`output.shape`, `output.spacing`, `output.axcodes`, `output.affine`,
`hu_range`, and `runtime.conversion_seconds`.

Scope limits: single-series CT only; no multi-frame DICOM, compressed transfer
syntax handling, RT structure sets, auto-reorientation, or clinical use.


---
*Source: https://skills.yangsir.net/skill/gh-dicom-series-to-volume*
*Markdown mirror: https://skills.yangsir.net/api/skill/gh-dicom-series-to-volume/markdown*