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