"这篇文档主要介绍了DICOM文件格式,包括其结构、组成模块以及与医学图像处理相关的细节。DICOM(Digital Imaging and Communications in Medicine)是医学领域广泛使用的标准格式,用于存储、交换、打印和呈现医学图像。" 在 DICOM 格式中,每个图像文件由两大部分构成:header 和 pixel data。Header 包含了关于图像的元数据,如患者信息、研究详情、系列描述等,而 pixel data 存储了实际的图像像素值。与常见的图像格式如 BMP、JPEG 或 TIFF 相比,DICOM 的 header 更加复杂,包含了更丰富的临床信息。 DICOM 数据结构基于一种层次化的概念,由四个主要的信息实体(IE)构成: 1. Patient():代表患者信息,包括患者的姓名、性别、出生日期等基本资料。 2. Study():表示一次诊断研究,可能包括多个系列的图像。 3. Series():在一次研究中,同一类型的图像序列称为一个系列,比如不同角度的X光片。 4. Image():单个图像,每个图像都是 Series 中的一个成员。 每个 IE 都对应一组模块(Module),每个模块又包含一系列属性元素(Attribute Element)。例如,对于 CR 图像(Computed Radiography),相关的模块有: - PatientIE:包括 PatientModule,提供患者基本信息。 - StudyIE:包括 StudyModule 和 PatientStudyModule,描述研究信息及其与患者的关系。 - SeriesIE:包括 GeneralSeries、CRSeries 和 GeneralEquipment,定义系列的详细属性、CR 特性和设备信息。 - ImageIE:包括 GeneralImage、ImagePixel、Contrast/bolus 和 CRImage,涵盖了图像的通用属性、像素数据、对比增强信息及CR特定信息。 DICOM 元素由四部分组成:group tag、element tag、length 或 VR/length、以及数据。Group tag 和 element tag 是 16 位的标识符,用来唯一确定一个元素;length 或 VR/length 描述元素的数据长度;数据部分则包含实际的值。 为了正确解析 DICOM 文件,需要了解 Part 5 中定义的元素(Element)详细规范,包括元素类型(如 Type 1、1C、2、2C 和 3),不同类型元素的强制性要求和可选性。例如,示例中的元素 {0x0008,0x0005} 表示特定的字符集(CS VR),其值为 "ISO_IR100",表明该文件遵循的字符编码。 总结来说,DICOM 格式是医学图像处理的关键,它不仅存储图像数据,还包含了丰富的临床和诊断信息。理解并能够处理 DICOM 文件对于医疗影像分析、诊断支持系统以及远程医疗等领域至关重要。
任何图像文件格式无非是由两个部分组成:存参数的 header 和图点数据(pixel data)。
BMP、 JPEG、TIFF 之类的格式的 header 只描述图像的基本参数:如几行、几列、每点用了几位、有没有压缩、调色板等等。Header 往往是固定长度的。
而医疗影像还要许多其它参数,如病人基本资料、检验基本资料、系列资料、位置资料等等。而且每种Modality 和每种 image 所需要的内容不一样。因此,一般的图像格式不能使用。
一、DICOM 的 4 个内容层次
1、 Patient (病人)
2、 Study (检验)
3、 Series (系列)
4、 Image (图像)
尽管头几层的内容在很多图像里是相同的,但它们在每个图像文件里都要有。
每一层叫一个Information Entity或IE(从relational database schema 设计引用而来)。每一层又细分成Module。每个Module里面的最小单元叫做一个attribute或element。
现在举个例子:CR 图像 (DICOM Part 3, A.2.3, Table A.2-1
1. Patient IE:
a. Patient Module (参考 C.7.1.1)
2. Study IE:
a. Study Module (参考 C.7.2.1)
b. Patient Study Module (参考 C.7.2.2)
3. Series IE:
a. General Series (参考 C.7.3.1)
b. CR Series (参考 C.8.1..1)
c. General Equipment (参考 C.7.5.1)
4. Image IE:
a. Genrral Image (C.7.6.1)
b. Image Pixel (C.7.6.3)
c. Contrast/bolus (C.7.6.4)
d. CR Image (C.8.1.2)
...
i. SOP Common (C.12.1)
将这些 modules (tables) 里的所有 elements 都找出来就做成了一个 CR 图像的架构。
那么,写到一个文件里或通过网路传送又是个什么格式呢?这就要看 Part 5。一个元素 (element) 的结构是:
1. group tag: 16-bit
2. element tag: 16-bit
3. length (or VR/length): 32-bit
4. data (bytes of length)
DicomElem CRDataSet [] =
{
{ 0x0008, 0x0005, "CS", 10, "ISO_IR 100"},
{ 0x0008, 0x0008, "CS", 16, "ORIGINAL\\PRIMARY"},
...
{0x0010, 0x0010, "PN", 16, "My^Test^Image^^ "},
{0x0010, 0x0020, "SH", 6, "123456"},
...
{0,0,"",0,""}
};
void WriteCDImage(FILE *fp)
{
DicomElem elem = CRDataSet[0];
unsigned long int lComboTag;
int nCols, nRows;
unsigned char *pPixelData
unsigned long int lPixelLength;
pPixelData = LoadBMPImgeData("MyImage.bmp", nCols, nRows, lPixelLength);
while(CRDataSet[i].group_tag)
{
剩余5页未读,继续阅读
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 深入理解23种设计模式
- 制作与调试:声控开关电路详解
- 腾讯2008年软件开发笔试题解析
- WebService开发指南:从入门到精通
- 栈数据结构实现的密码设置算法
- 提升逻辑与英语能力:揭秘IBM笔试核心词汇及题型
- SOPC技术探索:理论与实践
- 计算图中节点介数中心性的函数
- 电子元器件详解:电阻、电容、电感与传感器
- MIT经典:统计自然语言处理基础
- CMD命令大全详解与实用指南
- 数据结构复习重点:逻辑结构与存储结构
- ACM算法必读书籍推荐:权威指南与实战解析
- Ubuntu命令行与终端:从Shell到rxvt-unicode
- 深入理解VC_MFC编程:窗口、类、消息处理与绘图
- AT89S52单片机实现的温湿度智能检测与控制系统