DICOM医学图象文件格式分析与显示实现

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:dswwldsw
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:文章首先针对DICOM3.0标准,对DICOM医学图象的数据结构进行系统的分析,阐述了文件元信息,数据集和数据元素的格式;然后结合DICOM图象显示的各种方法,创建了DICOM图象显示核心类,并简要描述了部分函数的功能。
  关键词:DICOM;PACS;显示;传输语法
  中图分类号:TP317.4 文献标识码:A文章编号:1009-3044(2007)04-11092-02
  
  1 引言
  DICOM标准是由美国放射学院(ACR)和美国国家电气制造商协会(NEMA)联合发起组成的一个联合委员会共同制定的,目的是解决各种医疗设备互通互联和信息交换的问题,它制定了医疗影像设备之间的数据存储与通信传输的标准。
  
  2 DICOM文件格式解析[2][3]
  DICOM医学图象文件的后缀为.dcm,一般的图象处理软件是不支持这种文件格式的。因此,如果要想在医学上对这种格式的图象进行读写或者处理,就必须对它有深刻的了解。
  DICOM文件从可分为文件头和数据集两个部分。其结构如图2-1。
  图1 DICOM文件结构
  2.1 DICOM文件头
  DICOM文件头是整个DICOM文件中最复杂的部分,包含了各种各样的信息,比如病人信息,图像采集设备信息,所存储的图像的信息等等。由于目前关心的是如何把一个DICOM文件的图像显示出来,因此可以暂时只关心和显示数据集中存储的图像数据有关的数据。
  DICOM的文件头包括两个部分,首先是128个字节的保留部分,该部分通常全为00h,文件前缀占4个字节,内容是大写字母的字符串“DICM”,在文件中为十六进制的“44 49 43 4D”,该组合可以作为判断一个文件是否为DICOM文件的依据。
  文件头的第二部分主要用来存储元信息(Meta Information),包括传输语法,病人姓名,文件元信息版本,媒体存储SOP类UID,传输句法UID等等。真正的图像数据紧跟在元信息之后。DICOM文件可以在单一文件中储存多幅图像,还可储存彩色图像。这些文件元素将依照Explicit VR Little Endian传输语法来编码。
  2.2 DICOM数据集和数据元素
  数据集表示一个现实世界信息对象的一个实例,它是由数据元素按照数据标签(Tag)的升序排列而成。数据元素主要有四个部分组成:标签(Tag),值表示类型(VR Value Representation),值长度(Value Length),值域(Value Field),其中值表示类型是可选的,图2-2描述了数据集和数据元素的结构:
  图2 数据集和数据元素结构图
  数据元素标签是一个16位的无符号整数的有序对,前8位代表组号,后8位代表元素号。值表示类型是含有数据元素VR的2字节的字符串。这2个字节的VR用DICOM默认字符集来编码。数据值域含有数据元素的值,它的存储长度为偶数个字节。存储在这个字段的值的数据类型由这个数据元素的值表示类型(VR)决定。而数据集中数据元素的编码方式是由DICOM文件元信息中传输语法UID来决定。
  紧接着,图像Pixel Data信息(7EE0 0010)是DICOM文件中最重要的一个数据单元。该单元包含了医学DICOM图象的显示所必须的数据。与Pixel Data信息有密切关系的其他数据元是:
  图象帧数,图象行数,图象列数,分配位数,存储位数,最高位数.
  Pixel Data数据的编码由分配位数,存储位数和最高位数,分配位数一定是大于存储位数的。DICOM图象的象素数据一般为16 Bits或12 Bits两种。若数据为16Bits时,则每象素二字节;若数据为12 Bits时,则每象素字节分配情况就较为复杂,需要通过判别(0028,0100),(0028,0101),(0028,0102)的值来决定每像素分配位数,存储位数和像素的最高位情况。
  
  3 DICOM图象的显示
  在上面分析了DICOM文件格式的基础上,解析文件后,获得了文件中所有数据元素的信息。在这些信息里有文件的图像信息,本节根据上一节中获得的信息将文件所封装的图像显示在屏幕上。
  DICOM图象的显示主要由两种方法:(1)先读取DICOM文件,接着将读取的数据进行转换处理[4],然后再以DIB显示DICOM图象[5]。(2)先根据上面分析的DICOM文件的结构来解析它的TAG,再获得它的每个Pixel data的信息,然后再来做映射。本文采用的是后者。
  3.1 DICOM图象显示过程分析
  主要是利用在上面的文件结构的来达到显示的目的的。
  DICOM文件头的文件序言所占的128个字节,是用于应用简介的,用Preamble( )直接跳过。运用DicomLog()来读取DICOM的前缀“DICM”来判断是否是DICOM文件,否的话,提示错误信息。
  如果根据前缀内容判断,得到是DICOM图象,就开始继续读取的文件元信息(File Meta Information)提取相关的传输语法。接着,读取图象的pixel data信息。从图象的行数(0028 0010)、列数(0028 0011),位分配(Bits Allocated)(0028 0100),位存储(Bits Stored)(0028 0101)和最高位(High Bit)(0028 0102)这些数据元素就可以了解图象数据元素的信息,图象的宽度和高度,以及每个图象数据元素的存储长度,实际上分配的位数,位存储的最高的位在分配中的第几位等等,运用Rows(),Columns(),BitsAllocated(),BitsStored(),HighBit()等函数分别读取载入的DICOM图象的这些信息,以及其他相关的信息。
  最后调用相关的DICOM图象的显示程序来显示的Dicom图象。(图3-1就体现了DICOM图象的显示过程。)在本文中,具体的实现描述如下:
  图3 显示流程图
  3.2 DICOM图象显示的实现
  的程序是在目前应用最广泛的平台(Windows 操作系统)上开发的。因为 Visual C++支持面向对象编程,选用它作为开发环境。整个设计的核心是一组对 DICOM 数据集进行解码的 C++类,这些类是用面向对象方法设计出来的,而且符合医学影像标准,所涉及到的关键类继承关系如图3-2。
  图4 与显示有关的类结构图
  
  4 总结
  DICOM 3.0做为医学图象存档和通信的国际标准,是所有医学影像技术的基础。而DICOM图象显示程序具有在显示工作站上显示医学图象的功能,可提供在无胶片环境下观察医学图象的方法,这是PACS系统所必需的功能。本文基于DICOM3.0标准,对 DICOM医学图象文件的数据结构进行了解析,并且在这一基础上,实现了DICOM图象的计算机显示(示例图像来源于网上),同时也为显示连续多帧DICOM医学图象的显示留了可以深入研究的余地。
  本文程序读取的图像
  专业软件读取的图象
  参考文献:
  [1]王新国. DICOM标准在PACS系统中的关键技术研究与实现[J].2004(5).
  [2]The DICOM Standard ,06_05.pdf, From http://medical.nema.org/dicom/2006/,Monday, April 24, 2006.
  [3]谢长生,熊华明,陈颉. DICOM图象显示的研究与实现[J]. 计算机工程与科学,2002(6).
  [4]徐潘辉,林峰.DICOM医学数字图像格式与BMP通用图像格式转换软件的设计与实现[J].医疗设备信息 ,2006(3).
  [5]王光飞,刘杰,刘文.DICOM医学图象的调窗技术及DIB显示[M].医疗设备. 2005(8).
  本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
其他文献
摘要:在数据挖掘中关联规则中是一个重要的研究方向。Apriori算法是关联规则中最著名的算法。本文分析了Apriori算法存在的不足,与可以改进的方向。并提出了一种基于压缩事务项的改进方法,以提高Apriori算法的效率。  关键词:数据挖掘;关联规则;频繁项;Apriori算法  中图分类号:TP301文献标识码:A文章编号:1009-3044(2007)04-11096-01    1 引言 
期刊
摘要:介绍了如何使用Word制作一个教案设计模版。通过这一制作,意在抛砖引玉,帮助广大教员在编写教案过程中,进一步提高Word的应用能力,节时提效,将更多的时间用于教学设计。  关键词:教案模版;宏;菜单  中图分类号:TP311 文献标识码:A文章编号:1009-3044(2007)04-11115-02    1 引言  编写教案是教员备课的重要内容之一,由于教案内容的详实性以及教案格式的复杂
期刊
摘要:C++ Builder 是一个功能齐全的Windows应用程序开发工具.它的应用范围非常广泛.本文主要从四个方面叙述了按钮的制作。  关键字:C++ Builder;按钮;组件  中图分类号:TP311 文献标识码:A文章编号:1009-3044(2007)04-11065-02    1 引言  C++ Builder 是一个功能齐全的Windows应用程序开发工具,它的功能很强大,应用范
期刊
摘要:介绍了在VB中调用Bitblt函数和Sleep函数实现图像马赛克效果的方法,并通过一个具体的实例,讲述了其设计过程及程序代码。  关键词:Bitblt;Sleep;马赛克  中图分类号:TP312文献标识码:A文章编号:1009-3044(2007)04-11120-01    1 引言  马赛克效果是用方块填充某一图像框,从而实现图像变换的效果。Bitblt函数是API函数中的位图函数之一
期刊
摘要:本文提出一种新的全向天线信号强度模拟实现方法。文章分析了该方法实现的基本原理,简介了应用的主要技术,阐述了其实现的具体方法,并给出了软件流程图和关键程序代码,最后,对该系统的实际工程中应用做出了评价。   关键词:全向天线;模拟;VB;画图函数  中图分类号:TP337 文献标识码:A文章编号:1009-3044(2007)04-11105-02    1 引言  随着国家经济的发展和信息产
期刊
摘要:本文介绍了在21世纪出现的生物计算机,分子计算机、光计算机、超导计算机和量子计算机,这些新型计算机将对未来产生重大影响的。  关健词:生物计算机;分子计算机;光计算机超导计算机;量子计算机  中图分类号:TP38文献标识码:A文章编号:1009-3044(2007)04-11136-01    1 引言  自从1946年世界上第一台电子计算机诞生以来, 电子计算机已经走过了半个多世纪的历程。
期刊
摘要:建立滤波器设计系统的Simulink仿真模型,进行仿真分析,实现滤波器设计仿真技术。本文主要介绍使用Matlab的Signal Processing Toolbox工具箱中可视化滤波器集成设计环境—滤波器设计及分析工具(Filter Design and Analysis Tool) ,借助于FDATool强大的交互式图形用户界面,可以直接设置滤波器的性能指标、直接赋值滤波器系数来进行滤波器
期刊
摘要:对积件的定义、积件的组成和传统课件在实际应用中存在的局限性进行了研究,以开发了《数学分析》中10个积件,并把这10个积件应用到Authorware平台中为例,展示了积件在Authorware平台中应用的优越性。  关键词:积件;积件库;Authorware;应用  中图分类号:TP399文献标识码:A文章编号:1009-3044(2007)04-11132-02    1 引言  近年来,随
期刊
摘要:WinPcap系统是一个功能强大的用于网络数据获取开发包,它直接和网卡打交道,获取数据链路层的数据,能捕获数据链路层的所有数据包。基于WinPcap的网络数据获取系统具有结构简单、捕获数据快、协议识别率高等特点,它的三个模块的相互套用,实现了网络数据获取的基本功能。  关键字:网络数据获取;网络安全;数据包;WinPcap  中图分类号:TP393文献标识码:A文章编号:1009-3044(
期刊
摘要:C语言是非计算机工科专业开设的首门高级语言程序设计,在整个学科体系中占据着重要地位。为了提高教学质量,本文从教学目标、课堂讲授、实践环节等几个方面对C语言教学中出现的一些问题进行了分析和探讨。  关键词:C语言;教学实践;程序设计  中图分类号:G642文献标识码:A文章编号:1009-3044(2007)04-11149-02    1 引言  《C语言程序设计》是很多院校的工科必修课,也
期刊