DICOM医学序列图像数据读取及回放
- 格式:pdf
- 大小:458.87 KB
- 文档页数:3
DICOM医学图像处理:DIMSE消息发送与接收“⼤同⼩异”之DCMTKfo-dicommDCM背景:从DICOM⽹络传输⼀⽂开始,相继介绍了C-ECHO、C-FIND、C-STORE、C-MOVE等DIMSE-C服务的简单实现,博⽂中的代码给出的实例都是基于fo-dicom库来实现的,原因只有⼀个:基于C#的fo-dicom库具有⾼封装性。
对于初学者来说实现⼤多数的DIMSE-C、DIMSE-N服务⼏乎都是“傻⽠式”操作——构造C-XXX-RQ、N-XXX-RQ然后绑定相应的OnResponseReceived处理函数即可。
本博⽂希望在前⼏篇预热的基础上,对⽐DCMTK、fo-dicom、mDCM三种库构建DIMSE消息的具体操作,来分析⼀下三者对于DIMSE消息的发送和接收的实现,为后续搭建简易版的Dicom Server服务器做准备。
DIMSE:DIMSE,是DICOM Message Service Element的简称。
DICOM3.0第7部分指出:DIMSE为对等DICOM应⽤实体进⾏医学影像及相关信息交换提供了⼀种应⽤服务元素定义(Application Service Element),包括服务和协议(DIMSE Service 和DIMSE Protocol)。
DIMSE Protocol:DIMSE基于DIMSE协议来提供服务,DIMSE协议规定了构造消息必需的编码规则。
⼀条DICOM MESSAGE由固定的指令集合(Command Set),外加可选择的数据集合(Data Set)构成,如下截图所⽰:DIMSE Services:DIMSE服务因操作SOP类型的不同分为DIMSE-C Services和DIMSE-N Services,DIMSE-C服务⽀持在对等DICOM实体间进⾏Composite SOP Instance操作,主要包括C-ECHO、C-FIND、C-STORE、C-MOVE、C-GET等;⽽DIMSE-N服务⽀持Normalized SOP Instance操作,主要包括N-EVENT-REPORT、N-GET、N-SET、N-CREATE、N-ACTION、N-DELETE。
第29卷2009年12月计算机应用JournalofComputerApplicationsV01.29Dec.2009文章编号:1001—9081(2009)S2-0126—02基于OpenGL的DICOM医学图像读取和显示王旭1.翟红英2(1.首都医科大学大兴医院信息科,北京102600;2.北京联合大学师范学院电气信息系,北京100011)(dthongyin#buu.edu.cn)摘要:DICOM3.0是医院各影像设备所遵循的标准,该标准的文件一般不被现有的图像处理软件所支持。
通过对医学数字成像和通信(DICOM)标准的研究,编写了DICOM文件的读取与显示程序,使得普通电脑也可以显示DICOM标准的医疗影像图片。
为医疗影像的三维重建、医生对病灶处的诊断以及模拟手术的实施提供了前期技术支持,有助于医学资源的共享。
关键词:医学数字成像和通信标准;医学图像;标准;读取;显示中图分类号:TP391.9文献标志码:AReadinganddisplayingDICOMmedicineimagebasedonOpenGLWANGXul.ZHAIHong—yingz(1.Departmem矿Information,n“妇HospitalofCapitalUnitErsityofMedical&切l棚,觇咖曙102600。
China;2.DepartmentofElectricalInformation,Teacher'sCollegeof觑咖曙Union踟矗ma弘&洳19100011,傩打Ⅺ)Abstract:DICOM3.0isstandardwhichhospitalimageequipmentsfoHowby,butthefliesofthisstandardarenotsupportedgenerallybymostimageryprocessingsoftware.ThroughstudyingDigitalIraagingandCommunicationsinMedidne(DICOM),theprogramwascompiledtoreadanddisplaytheDICOMfilesthatmaytheordinarycomputerdisplaymedicalimages.Thisprovidmoretechnicalassistanceinmedicalimages30reconstruction,focusdiagnosisofinfectionplaceandsimulationsurgeryimplementation,anditisalsohelpfultomedicineI'eSOUI懒sharing.Keywords:DigitalImagingandCommunicationsinMedicine(DICOM);medicineimage;standard;reading;displaying随着医疗服务水准的提升,医疗信息系统已经成为所有医院发展必不可少的一部分,特别是医疗影像系统(PACS)随着医学影像技术和计算机网络技术的发展,逐渐在我国的医院普及。
医学图像格式转换及读取与显示1.医学图像格式转换通常从机器拷贝出来的医学图像数据为DICOM格式,如果是多种模态图像混合,则需要使用Dcm2AsiszImg.exe工具把多模态图像分类出来,软件如下图所示:Dcm2AsiszImg 是一个接收、发送DICOM 图像、把DICOM 图像进行分类、把DICOM 转化为安科Img 图像格式的软件工具。
用法:“输出目录”选择待转化的图像保存路径,“DICOM图像分类”选择要转化的原始图像目录,最后点击“DICOM图像分类”,输出图像分辨率为256*256。
常用的图像格式还有ANALYZE和NIFTI,ANALYZE格式的图像包括图像文件.img 和头文件.hdr,应用于SPM2。
NIFTI把图像文件和头文件合并为.nii文件,应用于SPM8、FSL、FreeSurfer等。
可以利用MRICron软件的dcm2niigui.exe插件把DICOM格式转化为ANALYAZE 和NIFTI格式。
在Help下的preference处可设置输出参数:2.3.读取与显示DICOM图像Matlab提供了dicominfo、dicomdict、dicomdisp、dicomread、dicomuid 、dicomwrite 函数,可实现DICOM格式图像的读取、显示、保存等操作,以及查看扫描信息。
4.读取与显示NIFTI格式图像MRIcro软件可以显示NIFTI图像① NIfTI这个Matlab程序可以读取显示、保存、制作核磁共振图像。
具体如下:>> [hdr,filetype,fileprefix,machine] = load_nii_hdr('output.hdr');>> [img,hdr] = load_nii_img(hdr,filetype,fileprefix,machine);>> save_nii(nii, filename, [old_RGB]);②SPM方法:help spm_read_volsV = spm_vol_nifti('output.hdr')[Y,XYZ] = spm_read_vols(V);5.Freesurfer的mgh图像读取与显示Freesurfer安装目录下有一个matlab程序包,提供了load_mgh, save_mgh等函数实现该文件的读取与显示。
《医学影像DICOM的显示和处理》篇一一、引言医学影像在医疗诊断和治疗过程中起着至关重要的作用。
而DICOM(Digital Imaging and Communications in Medicine)作为医学影像的标准,广泛应用于各种医疗设备和系统之间。
DICOM 的显示和处理是医疗影像工作中不可或缺的环节,它不仅要求有高质量的显示效果,还要求能进行高效的处理和解析。
本文旨在探讨医学影像DICOM的显示和处理的相关内容。
二、DICOM格式及特点DICOM是医学影像信息的国际标准,具有高度的标准化和兼容性。
它包含图像数据、患者信息、设备信息等多种内容,并以二进制格式存储。
DICOM格式的特点主要表现在以下几个方面:1. 标准化:DICOM标准为医学影像的传输、存储和交换提供了统一的规范,使得不同厂商的设备能够互相兼容。
2. 丰富性:DICOM文件包含丰富的信息,如患者信息、图像参数等,为医生提供了全面的诊断依据。
3. 兼容性:DICOM格式能够与各种医疗设备和系统进行无缝连接,方便了医疗信息的共享和交流。
三、医学影像DICOM的显示医学影像DICOM的显示是诊断过程中的重要环节。
高质量的显示效果能够提高医生的诊断准确性和效率。
在DICOM的显示过程中,需要注意以下几个方面:1. 显示设备:选择合适的显示设备是保证显示质量的关键。
常用的显示设备包括显示器、数字放射成像设备等。
这些设备应具有高分辨率、大屏幕和真实的色彩表现等特点。
2. 图像处理:图像处理包括对比度调整、亮度调整、窗口设置等操作。
这些操作能够优化图像质量,使医生能够更清晰地观察和分析图像。
3. 界面设计:界面设计应简洁明了,易于操作。
同时,应提供丰富的显示模式和选项,以满足不同医生的需求。
四、医学影像DICOM的处理医学影像DICOM的处理主要包括图像处理和数据分析两个方面。
通过对DICOM文件的处理和分析,可以提取出有用的诊断信息,为医生提供准确的诊断依据。
DICOM格式医学图像的读取与显示
李清美
【期刊名称】《泰山医学院学报》
【年(卷),期】2010(031)008
【摘要】目的探讨DICOM格式医学图像的读取与显示方法,为后续的图像处理和临床诊断提供预处理和理论基础.方法首先分析DICOM格式文件的结构,然后给出开窗显示的理论分析,最后,利用C/C++语言在VC﹢﹢开发环境下编程实现DICOM格式医学图像的读取和显示.结果该方法实现了DICOM格式医学图像的读取和显示.结论 DICOM格式医学图像的读取和显示在医学图像处理和临床中的应用具有重要意义.
【总页数】4页(P609-612)
【作者】李清美
【作者单位】泰山医学院附属泰山医院影像中心,山东,泰安,271000
【正文语种】中文
【中图分类】R811
【相关文献】
1.实现DICOM医学图像文件读取进度显示的方法 [J], 郭圣文
2.DICOM格式医学图像显示方法研究 [J], 张光玉;鲁雯;徐龙春;张敏风;邹越;赵文波;张岗;秦健;杨贵华
3.DICOM格式放疗计划信息的读取及显示 [J], 何滋鱼;葛云
4.基于OpenGL的DICOM医学图像读取和显示 [J], 王旭;翟红英
5.基于OpenGL的DICOM医学图像读取和显示 [J], 王旭;翟红英
因版权原因,仅展示原文概要,查看原文内容请购买。
1引言PACS(Picture Archiving and Communication Systems,医学影像存档与通信系统)是近年来随着数字成像技术、计算机技术和网络技术的进步而迅速发展起来的、旨在全面解决医学图像的获取、显示、存贮、传送和管理的综合系统。
而DICOM是DigitaI Imaging and Communications in Medicine的英文缩写,即医学数字成像和通信标准[1~3],它是PACS系统中应用的主要标准,在PACS系统中医学图像的传输和存储都是遵循DI-COM标准的。
在DICOM标准中详细定义了影像及其相关信息的组成格式、传输交换和存储方法,利用这个标准,人们可以接收影像设备中输出的数字化影像数据[4],同时各医院之间的PACS也可以利用DICOM标准来共享数字化影像数据。
在PACS系统的开发过程中,一方面需要对DICOM格式的医学图像及相关信息数据进行组织和管理,方便医生的查询和检索;另一方面,需要对医学图像进行分析和处理,为医生提供辅助诊断的手段。
因此在PACS系统开发过程中的前提工作就是对DICOM格式的医学图像进行解析,提取出相关医学图像信息,并将它们还原成为一般格式的图像序列,以利于图像的显示以及相关的后处理工作。
2DICOM数据的组织层次分析在PACS系统的开发中,为了满足医生查询和检索病人医学图像序列的需要,首先要对DICOM数据按照一定的组织层次来进行划分,从而更好地对DICOM数据进行管理,另一方面也可以较为便捷地提取医生所需要的病人医学图像序列。
DICOM数据的组织主要分为四个层次:患者(Patient)、研究(Study)、系列(Series)和图像(Image)。
这四个层次分别对应了相关类型信息的生成阶段和不同来源。
图1DICOM数据的组织层次划分病人层次位于整个DICOM数据组织层次的最顶层,DI-COM数据是以一个个的病人为单个模块来进行组织管理的,一个病人可以包含一个或多个研究,一个研究可以包含一个或多个序列,而序列又包含了一个或多个图像。
DICOM 医学序列图像数据读取及回放赖瑞增,林 强(福州大学 福建福州 350002)摘 要:结合实际工程中读取DICOM 医学序列图像的要点难点,较详细介绍了DICOM 数据元素的基本定义,着重阐述了读取数据中一些需注意的细节。
针对DICO M 文件格式的十六进制字符存储方式,采用C ++语言的有关文件函数进行读取,具体说明了实现的算法流程。
针对序列图像的回放显示存在帧之间时间间隔的精确定时这一技术难点,本文着重对其进行了分析阐述。
关键词:DICO M ;标签;数据;序列;回放中图分类号:T P391 41 文献标识码:B 文章编号:1004373X (2007)0516003Implementation of Read in Medical Sequential Image of DIC OML A I Ruizeng ,L IN Q iang(Fuzhou U niversity ,Fuzho u,350002,Chi na)Abstract :T his art icle includes the essentia l of the r ead in medical sequential imag e of DI CO M ,also intro duces the funda mental definition of the data elements of D ICO M particularly.Discusses t he details in r ead data emphat ically.T he code of DI CO M file is in the fo rm o f HEX,which w e use the file functio n of C ++languag e to read.M eanwhile,illustr at es the flo w cha rt of algo rit hm in implementat ion.W e also ex plain t he difficulty that the timing o f the int er val betw een f rames in the repla y o f the sequential imag e accurately.Keywords :DICOM ;label;dat a;sequential;replay收稿日期:20060726基金项目:卫生部科学研究基金 福建省卫生教育联合攻关计划资助项目(WKJ 2005 2 010)DICO M (digital image and communication on medi cine)文件为医学影像的专用传输和存储格式,后缀为.dcm,在CT ,M R,医院PA CS 系统中应用广泛。
DICOM 医学序列图像数据读取及回放赖瑞增,林 强(福州大学 福建福州 350002)摘 要:结合实际工程中读取DICOM 医学序列图像的要点难点,较详细介绍了DICOM 数据元素的基本定义,着重阐述了读取数据中一些需注意的细节。
针对DICO M 文件格式的十六进制字符存储方式,采用C ++语言的有关文件函数进行读取,具体说明了实现的算法流程。
针对序列图像的回放显示存在帧之间时间间隔的精确定时这一技术难点,本文着重对其进行了分析阐述。
关键词:DICO M ;标签;数据;序列;回放中图分类号:T P391 41 文献标识码:B 文章编号:1004373X (2007)0516003Implementation of Read in Medical Sequential Image of DIC OML A I Ruizeng ,L IN Q iang(Fuzhou U niversity ,Fuzho u,350002,Chi na)Abstract :T his art icle includes the essentia l of the r ead in medical sequential imag e of DI CO M ,also intro duces the funda mental definition of the data elements of D ICO M particularly.Discusses t he details in r ead data emphat ically.T he code of DI CO M file is in the fo rm o f HEX,which w e use the file functio n of C ++languag e to read.M eanwhile,illustr at es the flo w cha rt of algo rit hm in implementat ion.W e also ex plain t he difficulty that the timing o f the int er val betw een f rames in the repla y o f the sequential imag e accurately.Keywords :DICOM ;label;dat a;sequential;replay收稿日期:20060726基金项目:卫生部科学研究基金 福建省卫生教育联合攻关计划资助项目(WKJ 2005 2 010)DICO M (digital image and communication on medi cine)文件为医学影像的专用传输和存储格式,后缀为.dcm,在CT ,M R,医院PA CS 系统中应用广泛。
但DI COM 图像不能被日常使用的通用处理软件所识别,因此必须对DICOM 图像进行转换,以利于处理。
由于BM P 图像是Window 操作系统的通用图像格式并且易于处理,因此通常选择把单帧的DICOM 图像数据转换为BM P 图像显示,在此基础上实现存储多帧数据的DICOM 医学序列图像的播放显示。
在DICOM 格式的转化研究过程中,以GE 730超声诊断仪存储的DICOM 格式M 型超声心动图序列图像为实例,详细分析了文件结构中相关信息的排列规则,读取具体信息方法,实现了在微机系统上M 型心动图序列图像的再现播放,这对医疗图像的进一步分析处理打下坚实的基础。
1 DIC OM 文件结构DICOM 文件是指按照DICOM 标准而存储的医学影像文件,一般由一个文件头和数据集合组成。
如图1所示。
文件头的最开始是文件前言,他由128B 的00H 组成,接下来是DICO M 前缀,包含了字符串 DICM ,一般用这4字节判别是否是一个DICOM文档。
图1 DICOM 文件结构在DICOM 文件中最基本的单元是数据元素,DICOM 数据集就是由DICOM 数据元素按照一定的顺序排列组成的。
图2 DICO M 数据集与数据元素结构标签 一个16b 无符号整数对,分别代表组号和元素号,DICO M 所有的数据元素都可以用标签来惟一表示。
值类型描述(VR) 2B 的字符串,指明了该数据元素中的数据是哪种类型。
不同的数据类型决定了数据的不同读取方式。
值长度 一个2B 或4B(取决于显示或隐示V R)的160电子技术赖瑞增等:DICOM 医学序列图像数据读取及回放无符号整数,指明该数据元素的数据域中数据的长度。
数据域 指明数据的具体数值,该字段的数据类型由数据元素的V R所明确定义。
上面有关数据元素的定义,我们举一个具体的例子来说明:00280010555302000001(十六进制)。
其中0x00280010是图像行数的标签;0x5553是VR数据描述,在DICOM3 0标准中代表字符串 US;0x0200是值长度;0x0001就是图像行数的具体值。
2 医学序列图像DICOM文件数据的读取通过V C软件开发平台,编写算法读取显示BM P序列图像所需数据的相关信息。
2.1 具体DICOM数据在BM P序列图像的显示中,我们需要知道图像的高、宽、图像的帧数以及每一象素占用的位数。
与此相关的DICOM数据标签有如下:0x00280010(高); 0x00280011(宽);0x0028008(帧数);多少帧的图像象素数据;0x00280004(RGB):判断是否有RGB三色;0x00280100(位分配):指定一个象素占多少位;0x00280101(位存储):指定一个象素实际存储所占用的位数,小于或等于位分配;0x00280102(最高位);0x7FE00010:DICOM象素数据单元,数据的存储是从左到右,从上到下。
当DICOM图像数据具有RGB色彩时,一个象素数据R,G,B色彩的具体值是以BGR的顺序存储的,因此我们在转化为BM P图像显示时,要注意象素数据提取的对应方式。
在上面介绍的数据标签中,高、宽、位分配、位存储和最高位对应的VR类型在DICOM3 0标准中都是字符串!US∀;帧数标签对应的V R类型为!IS∀;0x7FE00010标签的VR类型为OW或OB,这取决于象素数据是否压缩,对未压缩数据,V R通常为OW,对压缩的数据,VR通常为OB。
2.2 函数实现方法2位十六进制可以表示1个字节,这样,在DICOM文件中,一个标签可以用4个字节表示。
因此,在VC开发平台上,可以采用C++语言有关字节的读函数与定位函数,介绍功能如下:fseek():设置文件位置指针距 起始位置、 偏移量个字节处;fread():从文件当前位置处,读入几个字节的数据项;fget s():从指定文件中读入字符串。
查找数据元素的具体方法:(1)获得DICOM文件指针后,用fseek()直接定位到128字节处,因为文件头由128B的00H组成。
(2)用fread()读取4个字节的字符,判断是否是所需的标签;(3)找到标签后,用f get s()读出该数据元素的其他字符串信息。
(4)用fseek()函数反向定位文件指针头所在处,实现逐字节查找标签。
(5)循环结束后,把得到的相关数据转化为BM P序列图像进行显示。
在上面的步骤中,有以下需要注意的问题:#DICOM文件中的标签存在一个字节换位的问题,即高两个字节与低两个字节换位存储,例如要查找高度标签0x00280010,实际应查找0x00100028。
∃DICOM文件中V R为如下表示值的数据元需要进行字节变换:2B的U S,SS,OW和AT。
例如,前面我们说明高、宽等标签的V R类型为US,如果高度的数据元素为00280010555302000001(十六进制),其中0x5553说明VR类型为U S;0x0200为值长度,字节互换后为0x0002,表示数据域占用2B;0x0001为数据域内容,字节互换后为0x0100,表示高度为256。
%如果VR类型为!IS∀,其对应标签存储的数据类型是ASCII码类型;比如帧数的数据元素为002800084953 02003430,其中0x4953说明VR类型为IS,因此其数值域内容是ASCII码形式,3430中34对应十进制为4,30对应十进制为0,组合后其值为40,表示有40帧的图像数据。
&标签是一个4B的无符号整数,高位字节是组号,低位字节是元素号。
如高度标签0x00280010,其中0028表示组号,0010表示元素号。
有了组号与元素号的区别, DICO M文件中数据元素一般是按照标签组号的大小顺序进行排列的,有相同组号的标签则按元素号的大小顺序进行排列。
结合上面的思路,我们知道象素数据标签的组号为7FE0,因此在DICOM文件中存储的象素数据单元比较靠后,所以我们顺序查找标签的时候一般可以先查找到高、宽等的标签,根据此思想,算法流程图如图3所示。
3 DIC OM文件数据的医学序列图像重现序列图像的回放显示可以视为按固定的时间间隔按顺序在屏幕上显示序列图像中的每一帧。
在DICOM医学序列图像所需的数据单元读取完成后,把每一帧转化为BM P 图像格式,就可以在微机系统上无失真地显示单帧图像,但如何确定帧之间时间间隔和精确定时也是很重要的。
3.1 时间间隔的确定DICO M文件中有一个标签专门记录了医学序列图像在超声诊断仪采集时显示的帧率,即每一秒显示多少帧图像。
该帧率(Cine Rat e)标签为0x00180040。
假设该标签161∋现代电子技术(2007年第5期总第244期 电子技术应用!读取的值为N帧,则计算得到的时间间隔Interval:Int erval=1N(s)(1)图3 文件读取流程图3.2 序列图像回放的精确定时在微机系统中有一种分辨率极高的计数器,可作为高精度定时器。
Win32A PI为此提供了2个函数:QuerPer f ormanceFrequency()和QuerPerformanceCount er()。
前者用来获得计数器频率,即每秒所计数值,后者用来获得当前时刻计数器的数值(以开机时刻为基准值)。
这个计数器的性能取决于系统硬件:对基于Int el系统的芯片组,计时精度约为0 8 s。
本例中,利用函数Q ueryPerfor manceFrequency()测得定时器的计数频率为1193180,那么Interval秒的间隔内,计数器应跳过的数值Counter:Count er=Interval*1193180(2)也就是说当函数QueryPerformanceCounter()返回的当前计数值每增加Count er,就表明时间过了Interval秒。