Rename
如何处理乱码DICOM文件夹 0. 背景 其实本来没想做这个的,只是发现每次去找series_number的时候,我都要一个一个用ITK打开dicom文件,笔者属实是懒于应付这种重复机械的工作,所以写了个批量重命名的脚本虽然是生成的并且实际上花费的时间早就够我一个一个点进去看了。 每一个乱码文件夹里面可能是一组DICOM序列,比如 CT 的某个扫描序列、localizer 定位像、增强期图像等。问题就是这些文件夹名称没有任何意义,所以写了个python脚本用来批量读取每个DICOM序列的header信息,并且根据series_number和series_description自动重命名文件夹。 完整代码见 Github:allocate-dicom-renamer 1. 脚本目标 这个脚本主要完成三件事: 批量遍历所有病例文件夹; 读取每个 DICOM 序列的 header 信息; 根据 SeriesNumber 和是否为 localizer 自动重命名文件夹。 最终效果类似: 乱码文件夹1 -> series001 乱码文件夹2 -> series002 乱码文件夹3 -> localizer003 2. 用到的库 import os import json import pydicom import SimpleITK as sitk 其中: os:遍历文件夹、重命名文件夹; json:保存重命名日志; pydicom:读取 DICOM header; SimpleITK:作为备用方式读取 DICOM 信息。 安装依赖: pip install pydicom SimpleITK 3. 主要参数 DATA_DIR = "/你的/data/路径" DRY_RUN = False MIN_SERIES_IMAGES = 10 DATA_DIR 表示数据总目录,下面应该是多个病例文件夹。 data/ ├── case1/ ├── case2/ └── case3/ DRY_RUN 这是一个安全开关。 DRY_RUN = True 表示只预览,不真正改名。
阅读全文 »