我不是在寻找预先存在的库来读取DICOM文件。我正在寻找一些读取DICOM文件并解析它的示例代码。没有花里胡哨。我需要从头开始编写代码。我知道有很多可用的库,但我需要使用老式的C或C ++文件读取方法手动读取DICOM文件。不要浪费你的时间来建议图书馆。对图书馆没什么好感!我只需要手动完成。
具体来说,我需要知道如何从DICOM文件中访问值(最重要的是:像素值)。知道数据类型,大小和格式(我知道在DICOM中可能会有很大差异)会有所帮助。
谢谢! -j
答案 0 :(得分:2)
我倾向于说“不要这样做”,但你已经表明你有自己的理由想要编写自己的解析器 - 我是谁来争论! DICOM文件的“数据类型,大小和格式”在DICOM标准的第5部分(数据结构和编码)和第6部分(数据字典)中描述。这两个部分都可以http://www.dclunie.com/dicom-status/status.html#BaseStandard2015a在线免费在线提供各种格式。
图像的像素数据存储在带有标签的属性中(7fe0,0010)。如果图像未被压缩,则像素数据将是字节串。否则,Pixel Data属性将是Sequence属性,第二个序列项将包含封装的压缩像素数据。
编辑:在对类似问题的答案中也有一些有用的高级信息...... https://stackoverflow.com/a/213987/1220389
编辑2:DICOM标准的“2014b”版本包括对“参数化地图存储IOD”的支持。 “参数化地图”对象是衍生图像,非常类似于我们熟悉的获取图像对象,但参数图的像素值具有内在的定量意义。作为支持参数化地图的变化的一部分,DICOM标准推出了浮点图像像素模块和双浮点图像像素模块,其中包括浮点像素数据(7fe0,0008)和双浮点像素数据(7fe0,0009) )属性,分别。也就是说,现在可以在通常的像素数据(7fe0,0010)属性中传送图像的像素数据,用于获取的和最多的衍生图像,或浮点像素数据(7fe0,0008)或双浮点像素数据(7fe0,0009)。 )用于参数化地图。有关支持参数化地图存储IOD的DICOM标准中引入的更改的更多信息,请参见Supp 172 Parametric Map Storage。