覆盖 DICOM 中的像素数据时应替换 UID 以外的哪些 DICOM 标签?
Which DICOM tags other than UIDs should be replaced while overwriting pixel data in DICOM?
这是我另一个问题的延续:
我正在尝试从现有文件创建一个新的 DICOM 文件(实例),我在其中更改了像素数据。
从上面提到的其他问题,我明白了UID我需要改变什么。
除了 UID 我还应该更改哪些其他标签,以便在替换像素数据时获得有效的 DICOM?
更新:
在这种情况下,我正在使用 RT Dose IOD,不幸的是我无法提供匿名 header 但 documentation 描述了属性。
有许多依赖于像素数据的 DICOM 标签。最常见的可能是以下几种:
取决于图片尺寸:
Columns
/ Rows
- 定义图像的 X/Y 尺寸
Frame Number
- 对于多帧图像,尽管根据 SOP 需要调整更多标签 Class
- 定义一个像素物理尺寸的标签 - 取决于 SOP class,这可能是
Pixel Spacing
、Imager Pixel Spacing
或 Pixel Aspect Ratio
- 基本上是标签已存在于您的图片中
数据类型相关:
Bits Allocated
- 通常为 8 或 16,具体取决于每个数据点的字节数
Bits Stored
- 实际使用的位数,通常在8到16之间
High Bit
- Bits Stored
- 1
Samples Per Pixel
- 通常 RGB 为 3,单色图像为 1
Pixel Representation
- 0 表示无符号,1 表示有符号数据
Photometric Interpretation
- 取决于颜色模型,通常 RGB
用于未压缩的彩色图像,Monochrome2
用于 b/w 图像;对于压缩数据,有许多可能的值,还有一些与压缩相关的标签,但我假设你正在写未压缩的数据
您也可以将 Image Type
改编成 DERIVED\SECONDARY\...
之类的东西,当然还有另一个问题中提到的 UID。
根据您的 SOP Class,还有更多标签需要考虑,但这些可能是基本标签。
更新:
这是关于通用图像 DICOM 文件的,因为最初没有给出 SOP class。有关 RT Dose 图像的更多具体信息,请查看@kritzel_sw.
的回答
现在在 OP 更新并显示我们在这里讨论 RT 剂量对象之后,我想提出一些补充。
这种类型的“图像”可以有非常不同的风格,它甚至可能根本不包含像素数据。
在此 IOD 中,图像像素模块被 RT 剂量模块“叠加”,带有一大堆附加属性,描述由像素值表示的剂量值。根据您正在执行的像素数据替换类型,它们的值可能全部变为无效。
除了 MrBean Bremen 已经写过的关于通用像素描述属性的内容外,我建议您看一下图像平面模块,其中包含有关图像几何和同一参考系中图像关系的信息(即“3D 信息”)。
不确定此模块的条件(“...包含基于网格的剂量)是否适用于您的像素数据,但我肯定会查看属性并验证它们是否可以与以前的值保持一致,必须更新或删除。
此外,请查看参照系模块,尤其是参照系 UID (0020,0052) - 如果您不能完全确定您在图像平面模块属性中提供的坐标指的是与您正在修改的图像中的坐标系相同。
最后,基于意见的建议:我(可能还有其他张贴者)假设您正在处理“普通图像”,但 RT 剂量对象是不同的野兽。在正确性方面,我认为从头开始编写整个对象会更容易实现——事情的复杂性充分体现在Information Object Definiton的复杂性上,很容易忽略一些东西。在使用这些对象的领域,错误编码的信息对患者的影响非常高。
这是我另一个问题的延续:
我正在尝试从现有文件创建一个新的 DICOM 文件(实例),我在其中更改了像素数据。
从上面提到的其他问题,我明白了UID我需要改变什么。
除了 UID 我还应该更改哪些其他标签,以便在替换像素数据时获得有效的 DICOM?
更新:
在这种情况下,我正在使用 RT Dose IOD,不幸的是我无法提供匿名 header 但 documentation 描述了属性。
有许多依赖于像素数据的 DICOM 标签。最常见的可能是以下几种:
取决于图片尺寸:
Columns
/Rows
- 定义图像的 X/Y 尺寸Frame Number
- 对于多帧图像,尽管根据 SOP 需要调整更多标签 Class- 定义一个像素物理尺寸的标签 - 取决于 SOP class,这可能是
Pixel Spacing
、Imager Pixel Spacing
或Pixel Aspect Ratio
- 基本上是标签已存在于您的图片中
数据类型相关:
Bits Allocated
- 通常为 8 或 16,具体取决于每个数据点的字节数Bits Stored
- 实际使用的位数,通常在8到16之间High Bit
-Bits Stored
- 1Samples Per Pixel
- 通常 RGB 为 3,单色图像为 1Pixel Representation
- 0 表示无符号,1 表示有符号数据Photometric Interpretation
- 取决于颜色模型,通常RGB
用于未压缩的彩色图像,Monochrome2
用于 b/w 图像;对于压缩数据,有许多可能的值,还有一些与压缩相关的标签,但我假设你正在写未压缩的数据
您也可以将 Image Type
改编成 DERIVED\SECONDARY\...
之类的东西,当然还有另一个问题中提到的 UID。
根据您的 SOP Class,还有更多标签需要考虑,但这些可能是基本标签。
更新: 这是关于通用图像 DICOM 文件的,因为最初没有给出 SOP class。有关 RT Dose 图像的更多具体信息,请查看@kritzel_sw.
的回答现在在 OP 更新并显示我们在这里讨论 RT 剂量对象之后,我想提出一些补充。
这种类型的“图像”可以有非常不同的风格,它甚至可能根本不包含像素数据。
在此 IOD 中,图像像素模块被 RT 剂量模块“叠加”,带有一大堆附加属性,描述由像素值表示的剂量值。根据您正在执行的像素数据替换类型,它们的值可能全部变为无效。
除了 MrBean Bremen 已经写过的关于通用像素描述属性的内容外,我建议您看一下图像平面模块,其中包含有关图像几何和同一参考系中图像关系的信息(即“3D 信息”)。 不确定此模块的条件(“...包含基于网格的剂量)是否适用于您的像素数据,但我肯定会查看属性并验证它们是否可以与以前的值保持一致,必须更新或删除。
此外,请查看参照系模块,尤其是参照系 UID (0020,0052) - 如果您不能完全确定您在图像平面模块属性中提供的坐标指的是与您正在修改的图像中的坐标系相同。
最后,基于意见的建议:我(可能还有其他张贴者)假设您正在处理“普通图像”,但 RT 剂量对象是不同的野兽。在正确性方面,我认为从头开始编写整个对象会更容易实现——事情的复杂性充分体现在Information Object Definiton的复杂性上,很容易忽略一些东西。在使用这些对象的领域,错误编码的信息对患者的影响非常高。