【问题标题】:DICOM - Is Transfer Syntax sufficient for DataSet decoding?DICOM - 传输语法是否足以用于数据集解码?
【发布时间】:2014-10-18 19:56:24
【问题描述】:

我正在尝试确定在 DICOM 处理模块之间传播权限的正确方法。其中一个步骤是“将数据集从信封中取出”,我的意思是根据传输语法对属性进行解码。两件事我无法理解:

  1. DICOM 表 6.2-1。 DICOM 值表示给出了一个要求,即值代码必须满足才能保证有效(例如,AE 中没有控制字符)。然而,一些 VR 依赖于由 (0008,0005) 定义的字符集 - 也是“信封”的成员。是不是很矛盾?
  2. “数据元素 (7FE0,0010) 像素数据,其中分配的位 (0028,0100) 的值小于或等于 8,应具有值表示 OB 或 OW,并应以 Little Endian 编码。”这句话在标准中出现了好几次。如何确定是否交换字节? (不看 BitsAllocated - 信封的成员)

我是否遗漏了什么,或者是否真的有必要解释数据集中的一些数据元素以验证 DICOM 文件和数据结构中的其他元素?

编辑: 让我重新提出我的问题:

大多数情况下,传输语法足以解码(解压缩)像素数据并将字节序扁平化为首选格式。那是在任何高位/位分配/位存储转换和以下模态之前-> voi)。

但是对于存储在 VR=OW 中的像素数据 - 我们不知道是否交换字节,因为我们不知道图像是否分配了 8 位或更多位(它现在也正在解码(endian交换,vr 验证))。

字符串的故事类似。

编辑: OW问题的答案在这里:Is the "Other Word" VR legal for an 8-bit RGB image?

我的最后一个问题是: 如何在不知道 (0008,0005) 字符集是什么的情况下检查 VR=LO 元素是否不包含任何控制字符? (因为它可能还没有被编码)

【问题讨论】:

  • 您的问题是否仅限于解码 PixelData,还是涵盖整个文件的 DICOM 验证?
  • 实际上它仅限于传输语法Big Endian,8bit的Pixel Data,存储在VR=OW中。还有当我想验证字符串 VRs 时的情况,这些字符串应该以中文字符集显示。
  • @WitoldKsiążek 字符串与其他数据类型一起存储,从不与 OW 一起存储(例如:PN 代表患者姓名,UT 代表无限文本等)
  • 查看此答案stackoverflow.com/questions/8820965/…。标准的第 5 部分附件 D 有一些使用 OW 处理图像的好例子
  • 这解决了我的 OW 问题!非常感谢。使用特定字符集编码的文本问题仍然存在......我会尽快更新问题。

标签: syntax decoding transfer dicom


【解决方案1】:

如果传输语法指定了 Jpeg 图像,那么您不需要更多,因为大部分信息都在 jpeg 流中。

所有你需要知道的传输语法:

  • 光度解释(但请注意某些指定 RGB 光度而不是 YBR 的错误数据集)。 MONOCHROME 或 MONOCHROME2 指定最小像素值是代表白色还是黑色

此外,对于 DICOM 传输语法和无损 JPEG,您还需要了解:

  • 位分配
  • 高位
  • 整数类型(有符号/无符号)

对于DICOM传输语法你还需要知道:

  • 当数据类型为OW时,大端或小端反转字节

【讨论】:

  • 我会说 PhotometricInterpretation 也是强制性的,用于正确解码像素数据。
  • @ChrisO 你是对的。始终需要 PhotometricInterpretation。我已更改答案以澄清这一点
  • "当数据类型为 OW 时,大端或小端反转字节" - 看,这就是我的问题! imo 知道是否交换是不够的。 Dicom 说:“分配的位 (0028,0100) 的值小于或等于 8 的数据元素 (7FE0,0010) 像素数据应具有值表示 OB 或 OW,并应以 Big/Little Endian 编码。” 8 位图像也可以存储在 OW 中 - 我想你不应该交换。顺便提一句。我编辑了我的问题。
猜你喜欢
  • 2017-10-22
  • 2020-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多