DICOM图元(Graphic Annotation)详解
1 概述
1.1 什么是DICOM图元
DICOM图元(Graphic Annotation)是DICOM标准中用于在医学图像上叠加图形和文本标注的机制。通过图元,临床医生和技术人员可以在影像上添加测量线、注释文字、ROI边界、箭头指向等可视化元素,这些标注信息会随同影像一起存储和传输,确保多人协作时信息的一致性。
1.2 GSPS简介
GSPS(Grayscale Softcopy Presentation State,灰阶软拷贝呈现状态)是DICOM标准中定义的一种SOP Class,其全称为"Grayscale Softcopy Presentation State Storage"。PR(Presentation State)文件正是GSPS的实例,用于保存图像的呈现状态信息,包括亮度对比度调整、图形标注、显示区域和变换参数等。
GSPS的SOP Class UID为:
1.2.840.10008.5.1.4.1.1.11.1
1.3 图元在医学影像中的作用
图元在医学影像中具有广泛的应用场景:
- 测量标注:在影像上绘制测量线并标注长度,如骨折愈合程度的测量
- ROI勾画:标注感兴趣区域,如肿瘤边界勾画
- 教学标注:在影像上添加箭头、文字说明用于医学教学
- 手术导航:标注解剖标志点,辅助手术定位
- 报告引用:在报告中引用影像的特定位置
2 图元存储位置
2.1 PR文件中的结构
在PR DICOM文件中,图元信息主要存储在以下几个顶层Tag下:
| Tag | 名称 | 说明 |
|---|---|---|
| (0070,0001) | Graphic Annotation Sequence | 图形标注序列,核心容器 |
| (0070,005A) | Displayed Area Selection Sequence | 显示区域选择序列 |
| (0070,0060) | Graphic Layer Sequence | 图形图层序列 |
| (0070,0080) | Content Label | 内容标签 |
2.2 Graphic Annotation Sequence是核心容器
Graphic Annotation Sequence (0070,0001) 是图元信息的顶层容器,它是一个Sequence类型(SQ),包含一个或多个Graphic Annotation Item。
其内部结构如下:
Graphic Annotation Sequence (0070,0001)
└─ Graphic Annotation Item (FFFE,E000)
├─ (0008,1140) Referenced Image Sequence ← 引用源图像
├─ (0070,0002) Graphic Layer ← 所属图层
├─ Text Object Sequence ← 文本对象(可选)
│ ├─ (0070,0003) Bounding Box Annotation Units
│ ├─ (0070,0004) Anchor Point Annotation Units
│ ├─ (0070,0006) Unformatted Text Value
│ ├─ (0070,0010) Bounding Box Top Left
│ ├─ (0070,0011) Bounding Box Bottom Right
│ └─ ...
└─ Graphic Object Sequence ← 图形对象(可选)
├─ (0070,0005) Graphic Annotation Units
├─ (0070,0020) Graphic Dimensions
├─ (0070,0021) Number of Graphic Points
├─ (0070,0022) Graphic Data
├─ (0070,0023) Graphic Type
└─ ...
一个Graphic Annotation Item可以包含:
- Referenced Image Sequence:引用源图像的信息
- Graphic Layer:该标注所属的图层名称
- Text Object Sequence:文本标注内容
- Graphic Object Sequence:图形标注内容
3 图元相关Tag详解
3.1 顶层相关Tag
(0070,0001) Graphic Annotation Sequence
图形标注序列,是包含一个或多个标注项的顶层容器。当存在图形标注时此序列必须存在。序列中每个Item代表一个独立的图形标注单元,可以是纯文本、纯图形或两者的组合。
(0070,005A) Displayed Area Selection Sequence
显示区域选择序列,用于定义图像中需要显示的区域范围。该序列引用预定义的显示区域模板,或直接指定显示区域的像素范围。
(0070,0060) Graphic Layer Sequence
图形图层序列,用于定义所有图形标注所属的图层。每个图层具有独立的显示顺序和可见性属性,图层概念类似于图像编辑软件中的"图层"功能。
(0070,0080) Content Label
内容标签,用于标识PR文件的内容类型或来源。例如示例中的"UIH"表示该PR由联影设备生成。
(0070,0062) Graphic Layer Order
图形图层顺序,指定图层的显示优先级。数值越小表示图层越靠下(底层),数值越大越靠上(顶层)。
(0070,0100) Presentation Size Mode
表述尺寸模式,控制如何确定显示尺寸。
| 枚举值 | 含义 |
|---|---|
| SCALE TO FIT | 缩放至适应显示区域 |
| TRUE SIZE | 真实尺寸(以毫米为单位) |
| MAGNIFY | 放大(使用magnification ratio) |
(0070,0102) Presentation Pixel Aspect Ratio
表述像素宽高比,格式为"H:V"(如"1:1"、"4:3")。用于校正非正方形像素的显示,确保图形元素在不同设备上保持正确的比例。
(0070,0103) Presentation Pixel Magnification Ratio
表述像素放大比率,当Presentation Size Mode为"MAGNIFY"时使用。
3.2 图形对象(Graphic Object)相关Tag
(0070,0005) Graphic Annotation Units
定义图形数据(Graphic Data)坐标的单位系统。当Graphic Object Sequence存在时必须指定。
| 枚举值 | 含义 | 说明 |
|---|---|---|
| PIXEL | 像素单位 | 坐标直接对应图像像素坐标,原点在图像左上角 |
| DISPLAY | 显示单位 | 坐标归一化到[0,1]范围,与设备无关 |
| METRIC | 度量单位 | 坐标使用物理单位(毫米),需图像具有Pixel Spacing信息 |
(0070,0020) Graphic Dimensions
图形元素的维度数,通常为2表示二维坐标(x, y)。
(0070,0021) Number of Graphic Points
图形数据中点的数量,具体含义取决于Graphic Type。对于POINT表示点数,对于POLYLINE表示顶点数量。
(0070,0022) Graphic Data
图形元素的实际坐标数据,为多个浮点数值对(x1, y1, x2, y2, ...)。具体格式和数量取决于Graphic Type和Number of Graphic Points。
示例:
Graphic Type = POLYLINE
Number of Graphic Points = 3
Graphic Data = (165.6, 171.0), (274.9, 153.7), (192.7, 280.4)
表示由三个顶点连接而成的折线
(0070,0023) Graphic Type
图形元素的类型/几何形状。DICOM标准定义了以下5种枚举值:
| 枚举值 | 含义 | Graphic Data格式 |
|---|---|---|
| POINT | 单点标记 | (x, y) |
| POLYLINE | 多段线/折线 | (x1, y1, x2, y2, x3, y3, ...) |
| INTERPOLATED | 插值平滑曲线 | (x1, y1, x2, y2, x3, y3, ...) |
| CIRCLE | 圆形 | (xc, yc, xp, yp) 圆心+圆周点 |
| ELLIPSE | 椭圆 | (x1,y1,x2,y2,x3,y3,x4,y4) 长轴两端点+短轴两端点 |
说明:部分厂商实现中可能包含 LINE、ARROW、RECTANGLE 等扩展类型,但这些不属于DICOM标准定义。实际使用时应以具体设备和软件的实现为准。
(0070,0024) Graphic Filled
控制图形是否填充,仅对封闭图形类型(CIRCLE、ELLIPSE)以及封闭的 POLYLINE/INTERPOLATED 有效。
| 枚举值 | 含义 |
|---|---|
| Y | 填充图形内部 |
| N | 仅绘制轮廓(不填充) |
3.3 文本对象(Text Object)相关Tag
(0070,0003) Bounding Box Annotation Units
定义Bounding Box坐标的单位系统,与Graphic Annotation Units的枚举值相同(PIXEL、DISPLAY、METRIC)。
(0070,0004) Anchor Point Annotation Units
定义Anchor Point(锚点)坐标的单位系统,与Graphic Annotation Units的枚举值相同。
(0070,0006) Unformatted Text Value
文本标注的原始内容,为纯文本字符串。当Text Object存在时必须指定。
示例:
Unformatted Text Value = "xxxxxx"
(0070,0010) Bounding Box Top Left
包围盒(Bounding Box)左上角坐标,两个浮点数值(x, y)。与Bounding Box Bottom Right共同定义文本标注的显示区域。
坐标系:
- PIXEL单位:图像像素坐标,原点在左上角,x向右,y向下
- DISPLAY单位:显示坐标系,通常归一化
- METRIC单位:物理尺寸(毫米)
(0070,0011) Bounding Box Bottom Right
包围盒右下角坐标,两个浮点数值(x, y)。
特殊值:某些实现中使用(-1.0, -1.0)表示Bounding Box大小由文本内容自动决定。
(0070,0012) Bounding Box Text Horizontal Justification
文本在包围盒内的水平对齐方式。
| 枚举值 | 含义 |
|---|---|
| LEFT | 左对齐 |
| CENTER | 居中对齐 |
| RIGHT | 右对齐 |
(0070,0014) Anchor Point
锚点坐标,用于将文本标注附着到特定图形位置。两个浮点数值(x, y)。
典型应用:
- 测量线的端点,用于显示测量值
- 箭头指向的起点
- 圆形/椭圆形的中心点
特殊值:(-1.0, -1.0)表示锚点未定义。
(0070,0015) Anchor Point Visibility
控制锚点是否可见。
| 枚举值 | 含义 |
|---|---|
| Y | 锚点可见 |
| N | 锚点不可见(仅文本显示) |
3.4 显示区域(Displayed Area)相关Tag
(0070,0052) Displayed Area Top Left
显示区域的左上角坐标,两个有符号整数值(x, y)。与Displayed Area Bottom Right共同定义图像中需要显示的区域范围。
(0070,0053) Displayed Area Bottom Right
显示区域的右下角坐标,两个有符号整数值(x, y)。
4 Annotation Units单位系统详解
DICOM图元支持三种坐标单位系统,适用于不同的应用场景:
4.1 PIXEL(像素单位)
定义:坐标值直接对应图像的像素坐标
特点:
- 原点在图像左上角
- X轴向右递增,Y轴向下递增
- 坐标值为整数或浮点数
- 与具体图像分辨率直接相关
适用场景:
- 需要精确定位到像素级别的标注
- ROI(感兴趣区域)勾画
- 与图像像素一一对应的标注
4.2 DISPLAY(显示单位)
定义:坐标值相对于显示区域进行标准化
特点:
- 通常归一化到[0, 1]范围
- 可能使用不同的坐标系(原点位置因实现而异)
- 支持浮点数精度
- 与具体显示设备和图像分辨率无关
适用场景:
- 跨不同分辨率图像的标注
- 需要在多种设备上保持一致显示比例的标注
- 与设备无关的相对位置标注
4.3 METRIC(度量单位)
定义:坐标值使用物理度量单位(通常是毫米)
特点:
- 需要图像具有正确的Pixel Spacing信息
- 与患者解剖位置对应
- 可跨模态、跨设备进行比较
- 常用于测量类标注
适用场景:
- 长度测量类标注
- 需要精确物理尺寸的应用
- 放疗计划中的定位标注
- 跨影像对比分析
5 Bounding Box工作机制
5.1 基本概念
Bounding Box(包围盒)是用于定位和约束文本标注显示区域的矩形框。它由两个对角点定义:Top Left(左上角)和Bottom Right(右下角)。
5.2 坐标定义
Bounding Box由以下两个Tag共同定义:
- (0070,0010) Bounding Box Top Left:左上角坐标
- (0070,0011) Bounding Box Bottom Right:右下角坐标
两个点确定了一个矩形区域,文本内容将在此区域内显示。
5.3 文本对齐
通过Bounding Box Text Horizontal Justification (0070,0012)控制文本水平对齐:
| 对齐方式 | 效果描述 |
|---|---|
| LEFT | 文本左边缘贴近包围盒左边界 |
| CENTER | 文本水平居中于包围盒 |
| RIGHT | 文本右边缘贴近包围盒右边界 |
5.4 特殊值处理
某些实现中,当Bounding Box大小需要由文本内容自动决定时,会使用特殊值:
Bounding Box Bottom Right = (-1.0, -1.0)
这种情况下,系统会根据文本内容的实际尺寸动态计算包围盒大小。
5.5 Bounding Box与Anchor Point的协作
Bounding Box常与Anchor Point结合使用,实现文本标注向图形元素的精确附着:
Anchor Point (0070,0014):指向图形上的关键点(如测量线的端点)
Bounding Box:包含说明文本(如 "12.5 mm")
Anchor Point Visibility:控制锚点是否可见
渲染时,文本会通过不可见的连线附着到锚点位置,常见于测量值标注场景。
6 总结
DICOM图元机制为医学影像的标注和信息附加提供了标准化的解决方案:
-
灵活的图形类型支持:从简单的点、线到复杂的多边形、椭圆,满足各种临床标注需求
-
完善的位置描述体系:通过Bounding Box和Anchor Point的组合,实现文本标注的精确定位
-
多层次图层管理:Graphic Layer Sequence提供了类似图像编辑软件的图层功能,支持复杂的标注层次结构
-
统一的单位系统:PIXEL、DISPLAY、METRIC三种单位适应不同应用场景,确保标注的可移植性和精确性
-
标准化的存储格式:遵循DICOM标准的GSPS规范,图元信息可以无缝集成到PACS系统中进行存储、传输和共享