DICOM未定义标签长度,像素

7
我正在编写一些用于读取DICOM文件的软件,但我不确定如何处理具有未定义长度的标签。 标准规定:

“如果Value Field具有显式长度,则Value Length字段应包含等于Value Field字节长度的值。否则,Value Field具有未定义的长度,并且Sequence Delimitation Item标记了Value Field的结尾。”

因此,为了读取一个具有未定义长度的值FFFFFFFF,我将继续读取字节,直到遇到序列定界项FFFEE0DD。如果该值包含一系列恰好等于序列定界项的字节,我该如何正确地定位序列定界项?

1个回答

8

在DICOM中,未定义的属性用于SQ标签和Pixel Data(7fe0,0010)。在这两种情况下,数据块可以使用一个或多个Item Tags(FFFE,E000)进行编码,并且通过Sequence Delimitation Item(FFFE,E0DD)来表示属性的结尾。

对于Pixel Data,每个像素数据片段都使用Item Tag(FFFE,E000)进行编码。每个像素数据片段都以固定长度进行编码。像素数据的每个帧可以由一个或多个像素数据片段组成。像素数据中编码的第一个Item Tag是基本偏移表。如果使用多个片段对帧进行编码,则此偏移表将告诉每个帧在像素数据内的偏移量。如果偏移表长度为零,则每个帧都以单个片段进行编码。您可以在DICOM Part 5,Table A.4-1中查看编码示例。无论如何,您应该能够通过反复读取8字节的像素数据来解析像素数据的内容,以获取Item Tag / Sequence Delimiter Item和每个片段的长度,然后读取由长度指定的实际字节数并重复此过程。

您可以在DICOM Part 5,Table 7.5-2和Table 7.5-3中查看SQ属性编码的示例。这与Pixel Data类似,但具有与Item Tag相关联的长度可能是“未定义长度”的异常情况。但是,在序列的情况下,您可以继续解析序列的内容,因为它们只是标记数据。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接