load DicomData
使用3D Slicer的Python Interactor 命令批量载入dicom文件(load DicomData)
博主最近在研究医学影像相关内容,也阅读了官方文档和很多博客,发现3d slicer内置python命令行对批量载入dicom文件和批量保存scene很有帮助。
1、优质的3D Slicer操作、编程博客
- 3d slicer软件的入门与基本控制
https://blog.csdn.net/shenziheng1/article/details/76392120 - slicer官方文档 (网站加载速度很慢,纯英文,阅读能有更好的理解)
https://www.slicer.org/wiki/Slicer3:python
https://www.slicer.org/wiki/Documentation/Nightly
https://www.slicer.org/wiki/Documentation/4.10/ScriptRepository#Toolbar_functions(这个是最完整最详细的DICOM模块文档) - 在slicer中编程
https://blog.csdn.net/liaopiankun0618/article/details/84455220 - 介绍3D Slicer的另一个身份:医学影像IDE
https://cloud.tencent.com/developer/news/304961
2、Load(载入)功能
(1)官方文档说明
此代码将所有DICOM对象从文件夹加载到场景中。将评估所有已注册的插件,并使用置信度最高的插件来加载数据。文件被导入到临时DICOM数据库中,因此当前的Slicer DICOM数据库不会受到影响。
(2)python代码
dicomDataDir = "c:/my/folder/with/dicom-files" #dicom源文件夹
loadedNodeIDs = [] # this list will contain the list of all loaded node IDs
from DICOMLib import DICOMUtils
with DICOMUtils.TemporaryDICOMDatabase() as db:
DICOMUtils.importDicom(dicomDataDir, db)
patientUIDs = db.patients()
for patientUID in patientUIDs:
loadedNodeIDs.extend(DICOMUtils.loadPatientByUID(patientUID))
回车,执行命令。(如果文件数过多,或者电脑配置较低,运行速度很慢)
运行结果会报错,但是不影响影像的形成和slicer软件中dicomData的正常导入。
3、Save功能(保存为各种格式,如mhd.)
此部分官方文档没有对应代码,博主还没有认真阅读完全部文档,to be continued…
参考文献
[1]https://www.slicer.org/wiki/Documentation/Nightly