DICOM_open 插件在 DICOM 之上插件提供附加功能。开发这个插件有三个主要动机,首先是能够搜索 DICOM 文件以找到要打开的系列,其次是打开该系列并获取实际的体素数据,第三是在超堆栈中正确排列图像。
我通常会在分层目录结构中遇到 DICOM 数据集存储,其中名称并不能说明内容。DICOM 文件是数据库边界,其中的参数包含可能需要哪些数据集的线索。该插件的 GUI 提供了一个交互式界面来查找打开感兴趣的文件的系列。目录要处理 DICOM 的单个大集合目录,请参阅包含的杂 DICOM_explode 。
MRI DICOM数据集的体素数据往往存储为16位无符号整数,即幅度数据,尽管DICOM文件中它们的标签表明是有符号的。ImageJ不支持签名的16位图像数据。由于某种原因,他们将32768添加到数据集合素值中,把它们存储在无符号16位整数ShortProcessor中;至少可以说是令人困惑。该插件提供了像处理MRI数据的人们所期望的访问体素数据的方法。
我在 ImageJ 中打开的 DICOM 数据集包含多个体积,其中每个体积是在不同的条件下获取的,例如多 b 值扩散。 DICOM_explode 插件可以将 DICOM 数据集排序到自上而下正确排序的超堆栈中,适合处理请参阅 F_Project 插件。
##特点

当插件运行时,插件会首先显示一个目录浏览器以选择开始 DICOM 数据集的搜索目录,然后显示此 GUI。顶部是当前选定项目的目录。第二行提供一个下拉菜单,用于选择当前选定项目下的项目。选择一个项目可在下拉列表下方显示有关该项目的信息。只有当当前项目是系列时,底部的“加载系列”按钮才可用。
如果 DICOM 系列是多 b 值扩散数据集,则使用下拉菜单选择适当的类型 Trace、R/L、A/P、S/I;不支持 DTI。支持的供应商 (0008,0070) 为 GE MEDICAL SYSTEMS 和 SIEMENS。否则,如果在改变 DICOM 标签值时采集 DICOM系列,请输入要在片断的短标签中使用的 DICOM 标签和相关名称。这些字段都不是必需的。
Float 格式导致体素值与 DICOM 数据采用集中的体素值相同,尽管采用 32 位 FloatProcessor 格式。 §§§7 转换§§§ 格式导致 FloatProcessor 值根据线性重缩放 (0028,1053) 和截距 (0028,1052) 进行缩放。 16 位固定格式导致 FloatProcessor 值直接为短值并转换ShortProcessor 中(即,Java:(short)floatvalue;而不是:(ShortProcessor)FloatProcessorValue,n.b.,(ShortProcessor) 转换重新缩放)。 16 位损坏格式与导入的 DICOM 插件相同。
##方法
public static boolean isDICOM(File file)
文件是否具有正确的幻数(DICM)。
public static TreeMap<String,String> parseDICOM(ImagePlus imp, int s)
以易于使用的格式返回 DICOM 标签/值映射。切片 s 由 ImagePlus.getStackIndex 返回。
public static ImagePlus openDICOMFloat(File dfs)
public static ImagePlus openDICOMFloat(File[] dfs)
public static ImagePlus openDICOMScaled(File dfs)
public static ImagePlus openDICOMScaled(File[] dfs)
public static ImagePlus openDICOMShort(File dfs)
public static ImagePlus openDICOMShort(File[] dfs)
public static ImagePlus openDICOM(File dfs, String format)
public static ImagePlus openDICOM(File[] dfs, String format)
这些方法打开 DICOM 数据集。除了最后一个之外,所有方法都调用最后一个的便捷方法。 DICOM 数据集尚未排序。对于 File dfs,dfs 是 DICOM 文件的父目录,也可以是单个 DICOM 文件。对于 File[] dfs,dfs 应该是 DICOM 文件的父目录。
public static ImagePlus openDICOMDiff(File dfs, String format, String reqdirstr)
多b值扩散数据集,同时忽略不是reqdirstr的方向空间。reqdirstr是Trace、R/L、A/P、S/I之一。
public static ImagePlus volumeDICOM(ImagePlus imp)
假设只有一卷,对DICOM imp进行排序。
public static ImagePlus arrayDICOM(ImagePlus imp, String tag, String var)
将 DICOM imp 分类到超级堆栈中,假设 imp 是通过改变 DICOM tag 属性收集的。字符串 var 与 DICOM tag 的值结合使用来设置每个切片的标签。
public static ImagePlus[] diffusionDICOM(ImagePlus imp) throws Exception
将多b值扩散数据集排序为4个超堆栈的存储器,Trace、R/L、A/P、S/I各一个存储器元素。仅填充imp中存在的存储器元素。
public static double[] getArray(ImagePlus imp, int s, String tag)
public static double getDouble(ImagePlus imp, int s, String tag)
public static int getInt(ImagePlus imp, int s, String tag)
// Convenience methods to access DICOM tag values for a slice s. The slice s is as returned by ImagePlus.getStackIndex.
public static String getTagValue(ImagePlus imp, int s, String tag)
public static String getTagLine(ImagePlus imp, int s, String tag)
安装
将DICOM_open.zip解压缩到ImageJ插件File › Show Folder › Plugins或plugins/jars目录中。jar文件中的源代码。DICOM_explode已包含嵌套。
许可证
GPL 发放许可证。
变更日志
2019年4月1日初始版本。
已知错误
让我知道。