用于将dicom文件读取为simpleitk图像的dicom工具包
SimpleDicomToolkit的Python项目详细描述
#简单工具包 为文件夹中的所有dicom文件构建sqlite3数据库。DICOM文件可以 通过搜索dicom字段快速找到。最后(一些)图像和图像 卷可以直接读取。simpledicomtoolkit提供了一个干净的pythonic 用于处理大量DICOM文件的接口
##用法
生成或加载数据库:
`python db = SimpleDicomToolkit(path='/mydicomfolder') `
数据库只需构建一次。数据库被保存到一个文件中,并且 下次自动加载。simpledicomtoolkit每次都会搜索 为指定路径内的新文件夹并将其添加到数据库中。远离的 路径中的文件将从数据库中删除,随后 加载。
查询数据库:
`python db = db.select(PatientName='MyPatient',StudyDescription='MyStudy') `
这将选择与上面指定的patientname和 研究名称。任何有效的dicom文件都可以用来查询/选择文件。
`python db.files and db.files_with_fullpath `
将给出数据库中当前选定文件的列表 以及这些文件的完整路径。如果没有选择,它将给出一个列表 所有文件。
`python db.selection `
将返回当前用于选择文件的筛选器。
`python db.reset() `
将删除当前选择筛选器
`python db.SeriesDescription `
将给出当前所选内容的(唯一)系列说明列表。这个 适用于所有DICOM字段(PatientName、StudyDescription等)
##读取图像
`python myscript(db.files_with_path) `
您可以使用自己的脚本通过传递文件名来读取dicom文件 当前选择的。
`python db.image `
此外,在选择单个DICOM系列之后,这可能会返回一个simpleitk a 形象。它可能适用于CT、PET、SPECT和平面成像 做核磁共振检查。
`python db.array `
将返回给定选择的numpy数组。
##高级用法
`python db = SimpleDicomToolkit(path='/mydicomfolder', scan=False) ` 将加载当前存储的数据库,但不会扫描新文件。
`python db = SimpleDicomToolkit(path='/mydicomfolder', force_rebuild=True) `
将删除现有数据库并从头开始重建数据库
`python db = SimpleDicomToolkit(path='/mydicomfolder', in_memory=True) `
不要创建数据库文件,而只在内存中创建临时数据库。 将不保存数据库。
`python db = SimpleDicomToolkit(path='/myfolder', SUV=True) `
将在使用db.image和db.array时将图像转换为SUV。这可能行得通 对于西门子宠物,由于可能的不同 SUV值的DICOM实现。
`python db.reset('SeriesDescription') `
将只从当前选择中删除指定的DICOM字段。
##限制
高达10GB的小型数据库需要几分钟的时间来构建,并且可以 在生成后的几秒钟内被访问。高达100GB的数据库工作得很好,但是 windows上的性能比linux/macos要好得多。sqlite3更好 似乎是为windows优化的。由于数据库设计很差(根本没有)。 超过100GB的数据库访问速度可能非常慢。simpledicomtoolkit主要是 用于相对较小的项目。