1

我是 dcm4che 新手我指的是 dcm4che2 api 的 javadoc

如果我的问题非常基本,请原谅我试图从文件中创建一个 DICOM 对象“org.dcm4che2.data.DicomObject”。

DicomObject 的大多数与 DICOM 标记一起使用的成员函数都期望标记值被指定为 "ggggeeee" ,其中 gggg 是四位组 id,eeee 是四位元素 id。

dcm4j 文档将标记值称为“标记 -(组、元素)为 8 字节整数:ggggeeee”。- 并且预期的数据类型是 int

我想这只是一个用词不当(可悲的是,尽管它一直在 api 文档中一直遵循)

java“int”数据类型只能容纳四个字节,不是吗?所以我们宁愿需要提供一个 8 位数字而不是 8 个字节不是吗。

例如,如果我指定 DICOM 标记传输语法 UID - 这是第 2 组标记 10,那么我应该很好地传递一个值,不是吗?

 int  dicomTagXferSyntaxUid=0x00020010;

虽然很明显,但我想知道为什么 dcm4che 文档始终将其称为“8 字节整数”……我错过了什么?

欢迎评论

约格什

4

2 回答 2

3

一定是笔误,因为那个“8字节整数”是用来描述方法参数int类型的,只有4字节。

正如您自己所说的那样,它的意图是“8位整数”是有道理的。

于 2015-01-22T12:11:41.260 回答
0

DCM4CHE 文档中的陈述是正确的。快速浏览一下 Tag 类的 Javadoc 可以看出:

org.dcm4che2.data 类标签

由 org.dcm4che2.data.Tag 扩展的 java.lang.Object

public class Tag
extends java.lang.Object

提供标签常量。

字段摘要

static int  _3DRenderingType 
      (0072,0520) VR=CS, VM=1-n 3D Rendering Type
static int  AbsoluteChannelDisplayScale 
      (003A,0248) VR=FL, VM=1 Absolute Channel Display Scale
.
.
.

这些值显然是 int 类型,在 Java 中是 32 位或 4 字节,完全符合 DCM4CHE 文档。我认为您的误解是您假设标签表示 (gggg,eeee) 中的每个 g 和 e 都是一个字节。它不是; 相反,它是一个十六进制数字,因此每对 ee 代表一个字节。

于 2016-01-27T13:15:19.343 回答