当前位置:文档之家› DICOM医学序列图像数据读取及回放

DICOM医学序列图像数据读取及回放

DICOM医学序列图像数据读取及回放
DICOM医学序列图像数据读取及回放

DICOM 医学序列图像数据读取及回放

赖瑞增,林 强

(福州大学 福建福州 350002)

摘 要:结合实际工程中读取DICOM 医学序列图像的要点难点,较详细介绍了DICOM 数据元素的基本定义,着重阐述了读取数据中一些需注意的细节。针对DICO M 文件格式的十六进制字符存储方式,采用C ++语言的有关文件函数进行读取,具体说明了实现的算法流程。针对序列图像的回放显示存在帧之间时间间隔的精确定时这一技术难点,本文着重对其进行了分析阐述。

关键词:DICO M ;标签;数据;序列;回放

中图分类号:T P391 41 文献标识码:B 文章编号:1004373X (2007)0516003

Implementation of Read in Medical Sequential Image of DIC OM

L 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

收稿日期:2006

0726

基金项目:卫生部科学研究基金 福建省卫生教育联合攻关计

划资助项目(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=1

N

(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秒。采用这种方法进行精确定时能够确保定时的准确性。

在明确了单帧图像的显示及精确定时的函数后,我们就可以对读取的DICOM医学序列图像进行无失真回放了。如图4所示的显示效果图(以心电图的方标移动为区别标志);在此基础上对医学图像信息的进一步开发迈出了重要的一步。

4 结 语

以我们研究所开发的LEJ-1型全方向M型心动图系统为例,他针对从B超、彩超及其他医学图像设备视频输出的医学图像进行运动信息的提取,受PA L制式和图像采集卡性能的限制,我们只能实现每秒采集25帧图像。随着医疗设备技术的进步,图像采样频率已大幅度提高,有的甚至达到了80帧/s,如果按原来视频采集方式采集图像,会造成大量的图像信息的丢失。因此,我们有必要在医疗设备的图像数据库中直接读取数据,这样才能不失

帧地读取医学序列图像信息。

图4 回放不同帧(20,60)的序列图像

DICO M格式的医疗存储图像在大部分的卫生医疗设备中具有通用性,因此,如何在微机系统上实现对其转化读取具有重要的意义。本文针对DICOM格式的序列图像数据,提出实用的算法,读取医学序列图像回放所需要的特有信息,实现在微机系统上M型心动图序列图像的重现播放,有利于进一步进行M型心动图的动态信息的研究和二次开发。

参 考 文 献

[1]林强,张莉,贾文静.心脏B超序列图像中的动态信息与全方向

M型心动图[J].仪器仪表学报,2000,21(增刊):41 43.

[2]N edev schi S,Rusu F.Structr ed Repo rting o f Echocardio

g raphy Images in a DICOM Env iro nment.Co mputer in Car

diolog y,2004.

[3]伯彭波.张彩明,刘丽.基于DICO M3.0标准的医学图像处

理系统实现[J].计算机工程与应用,2004,40(26):223 225,232.

[4]冯辉.DICO M二进制文件解读的V C++实现[J].医学影像

学杂志,2003,13(7):538.

作者简介 赖瑞增 男,1981年出生,硕士研究生。

林 强 男,教授,博士生导师。

162

电子技术赖瑞增等:DICOM医学序列图像数据读取及回放

Dicom文件中图像参数详解

DICOM文件可以大致分为两部分: 一部分:与图像相关的元信息,包括患者信息,检查信息,序列信息,图像信息等等。 另一部分:图像的像素数据。 在解析DICOM文件中的像素数据的时候,我们先需要读取以下图像相关信息: 以下是某个CT影像中的图像信息示例: (0028,0002) Samples per Pixel VR: US Length: 2 Value: 1 (0028,0004) Photometric Interpretation VR: CS Length: 12 Value: MONOCHROME2 (0028,0010) Rows VR: US Length: 2 Value: 512 (0028,0011) Columns VR: US Length: 2 Value: 512 (0028,0030) Pixel Spacing VR: DS Length: 22 Value: 0.48828125\0.48828125 (0028,0100) Bits Allocated VR: US Length: 2 Value: 16 (0028,0101) Bits Stored VR: US Length: 2 Value: 12 (0028,0102) High Bit VR: US Length: 2 Value: 11 (0028,0103) Pixel Representation VR: US Length: 2 Value: 0 (0028,1050) Window Center VR: DS Length: 12 Value: 00100\00100 (0028,1051) Window Width VR: DS Length: 12 Value: 00500\00500 (0028,1052) Rescale Intercept VR: DS Length: 6 Value: -1000 (0028,1053) Rescale Slope VR: DS Length: 2 Value: 1 (0028,2110) Lossy Image Compression VR: CS Length: 2 Value: 01 (0028,2112) Lossy Image Compression Ratio VR: DS Length: 8 Value: 6.228918 1.(0028,0002) Samples per Pixel 每一个像素的取样数,一般来说,CT,MR,DR等灰度图像都是1,而彩超等彩**图像都是3,分别表示R, G, B三个颜色通道。 2.(0028,0004) Photometric Interpretation 我们经常碰到的Photometric Interpretation有以下几种类型: Monochrome2 一般的灰度图像都采用这种,Pixel值越大,图像就越白。

DICOM数据集与DCM文件格式

作者简介:全海英(1971-),讲师,博士研究生,主要研究方向:医学信号与图像处理、小波分析; 杨源(1976-),硕士研究生,主要研究方向:数字图像处理; 张歆东(1970-),硕士,主要研究方向:多媒体、信号处理; 郭树旭(1959-),教授,博士研究生,主要研究方向:多媒体、数 字图像处理与传输、小波分析、微波通讯; 刘景鑫(1967-),工程师,主要研究方向:医学影像设备学. 文章编号:1001-9081(2001)08-0145-02 DICOM 数据集与DC M 文件格式 全海英1,3,杨 源1,张歆东1,郭树旭1,刘景鑫2 (1.吉林大学电子工程系,吉林长春130023; 2.长春市中日联谊医院,吉林长春130031; 3.中国科学院长春光学精密机械与物理研究所,吉林长春130021)摘 要:该文在介绍医学信息领域的一种通用的图像及数据通讯标准DIC OM3.0的基础上,对DIC OM 数据集和DC M 文件的组织形式进行了分析,并且提出了在实际应用中对DIC OM 数据集的编解码接口的实施方案。 关键词:DIC OM3.0;医学图像;文件格式中图分类号:TP311.52 文献标识码:A 1 前言 随着信息技术的发展和计算机应用水平的不断提高,新一代医疗信息系统已逐步发展成为面向医疗服务,集成医疗信息、医学影象信息和医疗管理信息的综合化多媒体医院管理信息系统[3]。 为了便于影象信息的共享和交流,美国放射学会 (American C ollege of Radiology ,ACR )和美国国家电器制造商协会(National E lectrical Manu factures Ass ociation ,NE M A )联合制定了医学数字图像通讯标准ACR/NE M A DIC OM 3.0(Digital Imaging and C ommunications in Medicine )[1],其主要目的是为了在各种医疗影象产品之间提供一致性接口,以便更有效地在医学影象设备之间传输交换数字影象[2,3]。目前,世界上主要的医疗设备生产厂家都采用此标准作为医学影象设备的互操作接口及医学影象数字接口[4]。 2 DICOM 数据集 2.1 实体-联系(Entity -Relationship ,简称E -R )模型 概念模型是现实世界事物及其在信息世界的反映, DIC OM 表达概念模型最常用的方法是实体-联系方法。2.2 数据集(Data Set ) 一个数据集描述了现实世界信息对象的一个实例。数据集由数据元素(Data E lements )构成。数据元素是对对象属性值的编码。 1)数据元素结构 数据元素是由数据元素标签(Data E lement T ag )唯一定义的。数据元素在一个数据集中按标签值逐渐增大的顺序存放,且除了嵌套数据集外,任何一个数据元素在一个数据集中只出现一次。一个数据元素必为三种结构之一。其中两种结构包含了数据元素的VR (Value Representation ,值类型表述)即显式VR (Explicit VR )],但是它们的值长度的表达是不一样的。另外一种结构不包含数据元素的VR 即隐式VR (Im plicit VR )。这三种结构都包含了数据元素标签、数据值长度(Value Length )、数据值体(Value Field )。 2) 数据元素字段 图1 DICOM 数据集与数据元素结构 一个数据元素由若干字段组成,如图1所示。它至少包含 三项内容:数据元素标签、数据值长度、数据值体。VR 字段仅出现于两类显式VR 数据元素结构中。各字段的定义如下: 数据元素标签 一个16bits 无符号整数对,按顺序排列包括群号码和元素号码。 值类型表述(VR ) 是2Bytes 的字符串,是数据元素的VR 值。已给定数据元素标签的VR 在数据词典中有详细定义。这两字节的VR 用DIC OM 的默认字符集编码。 数据值长度 一个16或32bits (取决于显式或隐式VR )无符号整数,表明了准确的数据值体的长度,按字节数目(为偶数)记录。此长度不包含数据元素标签、VR 、值长度字段。一个32bit 的长度字段(FFFFFFFFH )表示未定义的数据值体长度。未定义长度可能被用于VR 为项目序列(Sequence of I tems ,S Q )类型的数据元素。对于值类型为OW (Other W ord S tring )或OB (Other Byte S tring )的数据元素,未定义长度则依赖于传输句法协议。 数据值体 其长度为偶数字节,表明了数据元素的值。该字段的数据类型是由数据元素的VR 所明确定义。值多重性(Value Multiplicity ,VM )指定了该类型的数据值体中可包括的取值的数目。如果VM 大于1,表明元素是多重取值的。未定义长度的数据值体通过序列定界项目界定。 3 DC M 文件 符合DIC OM 标准的文件通常后缀为.dcm ,大多数的图像 处理软件中都不支持这种图像格式。因此,了解.dcm 文件格式的详细内容对于读写及其它处理都是十分必要的。 DIC OM 文件格式提供了一种在一个文件中封装数据集的方法。这个数据集体现了一个与DIC OM I OD 相联系的S OP 实例,它被放置在DIC OM 文件元信息之后。每一个文件包括 第21卷第8期2001年8月 计算机应用C om puter Applications V ol.21,N o.8Aug.,2001

数字图像处理

院系:计算机科学学院 专业:计算机科学与技术 年级: 09级 课程名称:数字图像处理 组号: 25组 指导教师:孙阳光 学号: 姓名: 2012 年 6 月 13 日

年 级 班号学号 专 业 姓名实 验名称MATLAB图像处理编程基础 实验 类型 设计型综合型创新型 √ 实验目的或要求加深对数字图像处理理论课程的理解,进一步熟悉数字图像处理课程的相关算法和原理选择一副图像,叠加椒盐噪声,分别用邻域平均法和中值滤波法对该图像进行滤波,显示滤波后的图像,比较和分析各滤波器的效果。 选择一副图像,叠加零均值高斯噪声,设计一种处理方法,既能去噪声,又能保持边缘清晰。

实验原理(算法流程图或者含注释的源代码)二、算法原理 平滑滤波器用滤波模板确定的领域内象素的平均灰度值去代替图像中的每一个像素点的值,这种处理减少了图像灰度的“尖锐”变化,常称为邻域平均法。邻域平均法有力地抑制了噪声,同时也引起了模糊,模糊程度与邻域半径成正比。 中值滤波法是一种非线性平滑技术,它将每一象素点的灰度值设置为该点某邻域窗口内的所有象素点灰度值的中值.中值滤波法对消除椒盐噪音非常有效。 图像平滑往往使图像中的边界、轮廓变得模糊,为了减少这类不利效果的影响,这就需要利用图像锐化技术,使图像的边缘变的清晰。图像锐化处理的目的是为了使图像的边缘、轮廓线以及图像的细节变的清晰。 三、Matlab代码 1: I = imread('eight.tif'); J = imnoise(I,'salt & pepper',0.02); subplot(231); imshow(I);title('原图象'); subplot(232); imshow(J);title('添加椒盐噪声图象'); k1 = filter2(fspecial('average', 3), J); k2 = filter2(fspecial('average', 5), J); k3 = filter2(fspecial('average', 7), J); k4 = filter2(fspecial('average', 9), J); subplot(233); imshow(uint8(k1));title('3×3模板平滑滤波'); subplot(234); imshow(uint8(k2));title('5×5模板平滑滤波'); subplot(235); imshow(uint8(k3));title('7×7模板平滑滤波'); subplot(236); imshow(uint8(k4));title('9×9模板平滑滤波'); I = imread('eight.tif'); J = imnoise(I,'salt & pepper',0.02); subplot(231); imshow(I);title('原图象'); subplot(232); imshow(J);title('添加椒盐噪声图象'); k1 = medfilt2(J); k2 = medfilt2(J,[5,5]); k3 = medfilt2(J,[7,7]); k4 = medfilt2(J,[9,9]); subplot(233); imshow(k1);title('3×3模板中值滤波'); subplot(234); imshow(k2);title('5×5模板中值滤波'); subplot(235); imshow(k3);title('7×7模板中值滤波'); subplot(236); imshow(k4);title('9×9模板中值滤波');

数字图像处理

数字图像处理(MATLAB版) 实验指导书 (试用版) 本实验指导书配合教材和课堂笔记中的例题使用 姚天曙编写 安徽农业大学工学院 2009年4月试行

目录 实验一、数字图像获取和格式转换 2 实验二、图像亮度变换和空间滤波 6 实验三、频域处理7 实验四、图像复原9 实验五、彩色图像处理10 实验六、图像压缩11 实验七、图像分割13 教材与参考文献14

《数字图像处理》实验指导书 实验一、数字图像获取和格式转换 一、实验目的 1掌握使用扫描仪、数码相机、数码摄像级机、电脑摄像头等数字化设备以及计算机获取数字图像的方法; 2修改图像的存储格式;并比较不同压缩格式图像的数据量的大小。 二、实验原理 数字图像获取设备的主要性能指标有x、y方向的分辨率、色彩分辨率(色彩位数)、扫描幅面和接口方式等。各类设备都标明了它的光学分辨率和最大分辨率。分辨率的单位是dpi,dpi是英文Dot Per Inch的缩写,意思是每英寸的像素点数。 扫描仪扫描图像的步骤是:首先将欲扫描的原稿正面朝下铺在扫描仪的玻璃板上,原稿可以是文字稿件或者图纸照片;然后启动扫描仪驱动程序后,安装在扫描仪内部的可移动光源开始扫描原稿。为了均匀照亮稿件,扫描仪光源为长条形,并沿y方向扫过整个原稿;照射到原稿上的光线经反射后穿过一个很窄的缝隙,形成沿x方向的光带,又经过一组反光镜,由光学透镜聚焦并进入分光镜,经过棱镜和红绿蓝三色滤色镜得到的RGB三条彩色光带分别照到各自的CCD上,CCD将RGB光带转变为模拟电子信号,此信号又被A/D变换器转变为数字电子信号。至此,反映原稿图像的光信号转变为计算机能够接受的二进制数字电子信号,最后通过串行或者并行等接口送至计算机。扫描仪每扫一行就得到原稿x方向一行的图像信息,随着沿y方向的移动,在计算机内部逐步形成原稿的全图。扫描仪工作原理见图1.1。

dicom读取方法

Dicom格式文件解析器 学数字图像与通讯,这里讲的暂不涉及通讯那方面的问题只讲*.dcm 也就是diocm格式文件的读取,读取本身是没啥难度的无非就是字节码数据流处理。只不过确实比较繁琐。 分析 整体结构先是128字节所谓的导言部分,说俗点就是没啥意义的破数据跳过就是了,然后是dataElement依次排列的方式就是一个dataElement接一个dataElement的方式排到文件结尾通俗的讲dataElement就是指tag 就是破Dicom标准里定义的数据字典。tag是4个字节表示的前两字节是组号后两字节是偏移号比如0008,0018。所有dataElement在文件中都是按tag排序的 比如0002,0001 0002,0002 0003,0011 文件整体结构如下: 又把论文里的这图贴上来总结的很好。单个dataElement的结构如下: 显示VR:VR为OB OW OF UT SQ UN的元素结构 显示VR:VR为普通类型时元素结构(少了预留那一行) 隐式VR 时元素结构

要问VR是啥东东,值表示法啥叫值表示法啊俺不懂 int string short ushort 懂不就是这个意思,Dicom标准真坑爹非要整个怪怪的概念。 VR总共27个跟c#值类型对应关系我都写好了: 1string getVF(string VR, byte[] VF) 2 { 3string VFStr = string.Empty; 4switch (VR) 5 { 6case"SS": 7 VFStr = BitConverter.ToInt16(VF, 0).ToString(); 8break; 9case"US": 10 VFStr = BitConverter.ToUInt16(VF, 0).ToString(); 11 12break; 13case"SL": 14 VFStr = BitConverter.ToInt32(VF, 0).ToString(); 15 16break; 17case"UL": 18 VFStr = BitConverter.ToUInt32(VF, 0).ToString(); 19 20break; 21case"AT": 22 VFStr = BitConverter.ToUInt16(VF, 0).ToString(); 23 24break; 25case"FL": 26 VFStr = BitConverter.ToSingle(VF, 0).ToString(); 27 28break; 29case"FD": 30 VFStr = BitConverter.ToDouble(VF, 0).ToString(); 31 32break; 33case"OB": 34 VFStr = BitConverter.ToString(VF, 0); 35break; 36case"OW": 37 VFStr = BitConverter.ToString(VF, 0);

数字图像处理工具箱

1. 图像和图像数据 缺省情况下,MATLAB将图像中的数据存储为双精度类型(double),64位浮点 数,所需存储量很大;MATLAB还支持另一种类型无符号整型(uint8),即图像矩 阵中每个数据占用1个字节。 在使用MATLAB工具箱时,一定要注意函数所要求的参数类型。另外,uint8 与double两种类型数据的值域不同,编程需注意值域转换。 从uint8到double的转换 --------------------------------------------- 图像类型MATLAB语句 --------------------------------------------- 索引色 B=double(A)+1 索引色或真彩色 B=double(A)/255 二值图像 B=double(A) --------------------------------------------- 从double到uint8的转换 --------------------------------------------- 图像类型MATLAB语句 --------------------------------------------- 索引色B=uint8(round(A-1))

索引色或真彩色 B=uint8(round(A*255)) 二值图像B=logical(uint8(round(A))) --------------------------------------------- 2. 图像处理工具箱所支持的图像类型 2.1 真彩色图像 R、G、B三个分量表示一个像素的颜色。如果要读取图像中(100,50)处的像素值, 可查看三元数据(100,50,1:3)。 真彩色图像可用双精度存储,亮度值范围是[0,1];比较符合 习惯的存储方法是用无 符号整型存储,亮度值范围[0,255] 2.2 索引色图像 包含两个结构,一个是调色板,另一个是图像数据矩阵。调色 板是一个有3列和若干行 的色彩映象矩阵,矩阵每行代表一种颜色,3列分别代表红、绿、蓝 色强度的双精度数。 注意:MATLAB中调色板色彩强度[0,1],0代表最暗,1代表最亮。 常用颜色的RGB值 -------------------------------------------- 颜色R G B 颜 色 R G B

DICOM标准及医学影像设备

DICOM标准 1.定义 DICOM(Digital Imaging and Communications in Medicine)即医学数字成像和通信,是医学图像和相关信息的国际标准(ISO 12052)。它定义了质量能满足临床需要的可用于数据交换的医学图像格式。 2.历史 在1970年代,随着以CT为代表的数字成像诊断设备在临床得到广泛应用,美 国放射学院(ACR)和国家电气制造协会(NEMA)在1983年成立了一个联合委员会,以制定相应规范。 ACR-NEMA联合委员会于1985年发布了最初的1.0版本(ACR-NEMA Standards Publications No.300-1985),又分别于1986年10月和和1988年1月发布了校订No.1和校订No.2。1988年该委员会推出2.0版本(ACR-NEMA Standards Publications NO.300-1988),到1993年发布的DICOM标准3.0,已发展成为医学影像信息学领域的国际通用标准。 3.目的 (1)推动不同制造商的设备间数字图像信息通信标准的建立。 (2)促进和扩展图片归档及通讯系统(PACS),使它可以与其它医院信息系统进行交互。 (3)允许广泛分布于不同地理位置的诊断设备创建统一的诊断信息数据库。 4.意义 DICOM标准中涵盖了医学数字图像的采集、归档、通信、显示及查询等几乎所有信息交换的协议;以开放互联的架构和面向对象的方法定义了一套包含各种类 型的医学诊断图像及其相关的分析、报告等信息的对象集;定义了用于信息传递、交换的服务类与命令集,以及消息的标准响应;详述了唯一标识各类信息对象的 技术;提供了应用于网络环境(OSI或TCP/IP)的服务支持;结构化地定义了制造厂 商的兼容性声明。 DICOM标准的推出与实现,大大简化了医学影像信息交换的实现,推动了远程放射学系统、图像管理与通信系统(PACS)的研究与发展,并且由于DICOM的开放性与互联性,使得与其它医学应用系统(HIS、RIS等)的集成成为可能。

DICOM图像最大密度投影

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%% Share Information %%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%% Tag:Matlab, Medical Imaging, DICOM %%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 标题:DICOM图像最大密度投影 %% 内容:对DICOM图像最大密度投影 %% 作者:Destiny %% 日期:2012-10-05 %% 是否转载:否 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%% MIP %%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %For initial P = zeros(249,512); %To store the final result CP = zeros(1,512); %To store the line-image after projection % for each image on coronal plane %For read all images automaticly filename = dir('*.dcm'); [r c]=size(filename); %Maximum Intensity Projection for a = 1:r %For each image, read it by using dicominfo() an dicomread() %str = sprintf(filename(a).name); info=dicominfo(filename(a).name); Y = dicomread(info); %Get the image size [m,n] = size(Y); %For each DICOM image, find its maximum value in coronal plane CP = max(Y,[],1); %For final result, add line-images into the matrix P with the size %249*512 P(r-a+1,:) = CP; end figure,imshow(P,[])%Here use [] to show P, % make P's minumum values into 0, % while Maximum values into 255.

DICOM文件解读

接着昨天,对文件格式的分析: 0100h-0119h:这里的02001000将其进行字节转换后为00020010,这里标签的含义是UID,5549即为UI,值域长度为1200,将其字节转换后为0012即为18,表示后面18个字节都 是值的内容即1.2.840.10008.1.2。 011ah-0135h:这里的02001200将其进行字节转换后为00020012,值描述还是UI,值域长度为14 00即为20个字节,值的内容为1.2.40.0.12.0.9812.0。 0136h-0147h:这里的02001300将其进行字节转换后为00020013,其值描述为5348即为 SH(可见标准第五部分short string),0A00即值域长度为10,其值的内容为0.1B/WIN32。 0148h-015fh:这里的02001600将其进行字节转换后为00020016,其值描述为4145即为 AE,值域长度为1000字节顺序转换为0010即为16个字节长度,其值的内容为IRIS后跟 12个字节的空格(20)。 0160h-0171h:这里的08000500将其进行字节转换后为00080005,查找标准第六部分得知 其为特定字符集(Specific Character Set),0A00字节转换后000A知字节长度为10,后跟 两个字节的保留字,从0168h开始为ISO_IR100,表示ISO组织的一个记录号。 0172h-018fh:这里的08000800将其进行字节转换后为00080008,查找标准第六部分得知 其为图像类型(Image Type),同上一个数据元一样这个地方也没有表示值,1600字节转换 后0016得知字节长度为22,后跟两个字节的保留字,从017ah开始为ORIGINAL\PRIMARY\AXIAL,表示该图像的类型。 0190h-01b1h:这里的08001600将其进行字节转换后为00080016,查找标准第六部分得知 其为SOP服务类的UID(SOP Class UID),为什么这里就不需要判断VR而有标签直接得 出是属于UI呢?是隐形显示吗隐形显示与显性显示的区别如何从图像中看出来! 1A00转换字节为001A即长度为26,后跟两个字节的保留字,从0198h开始为 1.2.840.10008.5.1.4.1.1.2,与下面的00080018一起指得是与DICOM文件的传输识别有关的 识别码。 01b2h-01f1h:这里的08001800将其进行字节转换后为00080018,查找标准第六部分得知 其为SOP实例的UID(SOP Instance UID),3800进行字节转换为0038则为56个字节,后 跟两个保留字,从01bah开始为1.2.840.1136.19.2.81.290.23014.32126.1.2.20081217.250500。 01f2h-0201h:这里的08002000将其进行字节转换后为00080020,查找标准第六部分得知 其为研究日期(Study Date),0800转换后为0008即八个字节的长度,后跟两个字节的保 留字,从01fah开始其值内容为20081217。 0202h-0211h:这里的08002100将其进行字节的转换后为00080021,查找标准第六部分得 知其为系列日期(Series Date),0800即八个字节,后跟两个字节的保留字,从020ah开始 其内容20081217。 0212h-0221h:这里的08002200将其进行字节的转换后为00080022,查找标准第六部分得 知其为Acquisition Date,同上一样在021ah开始其值内容为20081217。 0222h-0231h:这里的08002300将其进行字节的转换后为00080023为图像日期(Image Date),同上一样在022ah开始其值内容为20081217。 0232h-023fh:这里的08003000将其进行字节的转换后为00080030为研究时间(Study Time),这里的值域长度为六个字节,后跟两个保留字,在023ah开始150437。 0240h-024dh:这里的08003100将其进行字节转换后为00080031为Series Time,同上一 样在0248h开始为150437。 024eh-0263h:这里的08003200将其进行字节转换后为00080032为Acquisition Time,0E 00得知其值域长度为14个字节,后面有两个保留字,从0256h开始值域内容为150453.564159。

数字图像处理软件开发设计报告.docx

专业文档 数字图像处理软件开发设计报告

目录实验一、读取图像、显示图像和保存图像 实验二、图像的灰度变换、取反和二值化处理实验三、直方图均衡 实验四、图像锐化 实验五、图像的平滑滤波 实验六、图像的正交变换 实验七、高频强调滤波增强图像 实验八、陷波滤波器增强图像 实验九、消除匀速运动造成的图像模糊 实验十、图像的几何变换 实验十一、二维离散傅里叶变换性质验证 实验十二、用领域平均法平滑彩色图像 实验十三、图像的伪彩色处理

实验一、读取图像、显示图像和保存图像 一、实验目的和内容 1.通过本次实验,了解和熟悉 matlab 的实验环境,掌握图片的读取、显示、存储的方法。 2. 利用 imread() 函数读取一幅图像,假设其名为lily.tif,存入一个数组中。 3.利用 imshow() 函数来显示这幅图像。 二、实验原理(技术探讨) 1.在 matlab 环境中,程序首先读取图像,然后调用直方图函数, 设置相关参数,再输出处理后的图像。 读取图像 subplot(1,2,1),imshow(I)%输出图像 title('原始图像 ')% 在原始图像中加标题 2.启动 matlab 双击桌面 matlab 图标启动 matlab 环境; 在matlab 命令窗口中输入相应程序。书写程序时,首先读取图像,一般调用 matlab 自带的图像,如 :cameraman 图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像; 浏览源程序并理解含义; 运行,观察显示结果;结 束运行,退出

三、实验程序及结果 1.实验程序 I=imread( ' 实验一 .jpg' ); x=rgb2gray(I); figure(1) subplot(1,2,1); imshow(I); title(' 原始图像 ' ); subplot(1,2,2); imshow(x); title(' 灰度图像 ' ); 2.实验结果

数字图像处理的基本方法

一、图像的预处理技术 图像处理按输入结果可以分为两类,即输入输出都是一副图像和输入一张图像输出不再是图像的数据。图像处理是个很广泛的概念,有时候我们仅仅需要对一幅图像做一些简单的处理,即按照我们的需求将它加工称我们想要得效果的图像,比如图像的降噪和增强、灰度变换等等。更多时候我们想要从一幅图像中获取更高级的结果,比如图像中的目标检测与识别。如果我们将输出图像中更高级的结果视为目的的话,那么我们可以把输入输出都是一幅图像看作是整个处理流程中的预处理。下面我们将谈到一些重要的预处理技术。 (一)图像增强与去噪 图像的增强是一个主观的结果,原来的图像按照我们的需求被处理成我们想要的效果,比如说模糊、锐化、灰度变换等等。图像的去噪则是尽可能让图像恢复到被噪声污染前的样子。衡量标准是可以度量的。不管是图像的增强与去噪,都是基于滤波操作的。 1.滤波器的设计方法 滤波操作是图像处理的一个基本操作,滤波又可分为空间滤波和频域滤波。空间滤波是用一个空间模板在图像每个像素点处进行卷积,卷积的结果就是滤波后的图像。频域滤波则是在频率域看待一幅图像,使用快速傅里叶变换将图像变换到频域,得到图像的频谱。我们可以在频域用函数来保留或减弱/去除相应频率分量,再变换回空间域,得到频域滤波的结果。而空间滤波和频域滤波有着一定的联系。频域滤波也可以指导空间模板的设计,卷积定理是二者连接的桥梁。 (1)频域滤波 使用二维离散傅里叶变换(DFT )变换到频域: ∑∑-=+--==10)//(210),(),(N y N vy M ux i M x e y x f v u F π 使用二维离散傅里叶反变换(IDFT )变换到空间域: ∑∑-=-=+=1010)//(2),(1),(M u N v N vy M ux i e v u F MN y x f π 在实际应用中,由于该过程时间复杂度过高,会使用快速傅里叶变换(FFT )来加速这个过程。现在我们可以在频域的角度看待这些图像了。必须了解的是,图像中的细节即灰度变化剧烈的地方对应着高频分量,图像中平坦变化较少的地方对应着低频分量。图像中的周期性图案/噪声对应着某一个频率区域,那么在频域使用合适的滤波器就能去除相应的频率分量,再使用傅里叶反变换就能看到实际想要的结果。 不同的是,在频域的滤波器不再是做卷积,而是做乘积,因为做乘法的目的在于控制频率分量。比较有代表性的有如下几个滤波器: 高斯低通滤波器 222/),(),(σv u D e v u H -= D 是距离频率矩形中心的距离。该滤波器能保留低频分量,逐渐减小高频分量,对原图像具有模糊作用。

DICOM图像读取

Windows平台下多层DICOM图像读取与显示的方法 【摘要】目的实现Windows环境下读取与显示多层DICOM格式图像,为医学图像三维配准与重建等后处理提供数据。方法针对DICOM文件格式,在Visual C++6.0下设计了简化的图像类结构,将多层DICOM图像的相关数据读入到动态数组中,并转换成BMP位图实现在Windows环境下不同层图像间的切换显示。结果选取CT、MR、PET等不同模态的DICOM图像进行实验,均可正确读取。结论通过解析DICOM图像文件存储格式,实现了多层DICOM图像文件的读取与不同层间的切换显示。本程序运行于Windows环境,不依赖于具体DICOM工作站,便于科研教学使用。 【关键词】多层DICOM图像读取;图像显示;医学图像后处理;数据元素;窗宽窗位 A method of reading and displaying multi-slice DICOM images under Windows ZHU Zhi-liang,YANG Ye,WANG Bei-lei,et al.Biomedical and Multimedia Information Technology Group,Northeastern University,Shenyang110004,China [Abstract]Objective To implement reading and displaying multi-slice DICOM images under Windows environment.Methods According to the format of DICOM file,we designed the simplified DICOM class under Visual C++6.0.We read the information of multi-slices DICOM images into dynamic array and translated the DICOM file into BMP file to realize switched displaying of DICOM image under Windows environment.Results We tested with several DICOM images from different modalities,all images could be properly read and displayed.Conclusion The software of this article realizes the reading and switched displaying of multi-slice DICOM images.It runs under Windows that was independent on DICOM image work station and can provide data for medical image of3-dimensional registration and reconstruction. [Key words]read of multi-slice DICOM images;image display;medical image postprocess;data element;window center-window width 医学数字成像和传输(Digital Imaging and Communications in Medicine,DICOM)[1]是用于医学图像存储和通信的国际标准,规范了医学图像及各种数字信息在异构系统和设备之间存储、传送时的文件格式和语义描述,为不同的医学影像设备提供了一个一致性的接口,以实现数字影像在各种医学影像设备间的交换传输。随着DICOM标准的不断发展,现在生产的各种医疗设备(如CT、PET、MRI等)都已采用DICOM30标准的数字接口。 目前,多数DICOM图像浏览软件都基于UNIX平台且仅能读取与显示一幅图像,而在科研和教学中常需要在Windows环境下显示处理DICOM图像。另外,对医学图像进行后处理如三维配准及重建之前,首先要得到多层DICOM图像的信息,故本文对在Windows 环境下读取与显示多层DICOM图像的方法进行了初步研究,现将结果阐述如下。 1资料与方法 11DICOM文件格式DICOM文件是采用面向对象的方法来设计和编码的,每个文件有一个信息对象(IOD)与之相关联,信息对象的属性由数据元素来表示,而且对象的属性只能编码一次,用UID标识符来唯一标识[2]。DICOM文件一般可分为文件头和数据集两部分。文件头又有两部分:开头有128个字节的同步码,通常以十六进制的00填充;紧随其后4个字节的ASCII码“DICM”是所有DICOM数据文件的标识符。数据集是一些数据元的有序集合,其中包含诸如受检者信息、成像的技术参数、医生诊断信息、图像数据等资料。数据元一般由标签(TAG)、值表示(value representation,VR)、值长度(value

数字图像处理

第二章 概念 图像的数字化——对模拟图像信号的离散化过程,包括空间离散化和幅值离散化 像素——构成数字图像的最小单位,即软件和硬件能够控制的最小单位灰度——亮度,即色彩的深浅程度采样与量化 采样:对图像进行空间上的离散化处理 量化:对图像灰度值进行离散化处理数字图像的大小 M,N: 正整数 L: 2~k b:存储数字图像需要的比特数 b=M×N ×k 当 M = N 时,b=N~2k 像素的邻域 f(x,y): 一幅图像 p,r,s: 图像中的像素 4-邻域对角邻域/D-邻域 8-邻域 像素的邻接 描述图像中目标边界 两个条件: 两个像素的位置在某种意义上是否相邻两个像素的灰度是否满足某种相似准则 准则:假设用V表示定义邻接性的灰度值集合。 eg1: 二值图像 V={1} eg2: 4bit : V={8,9, (15) 4邻接:像素p和q都在V中取值,并且q在N4(p)中 8邻接:像素p和q都在V中取值,并且q在N8(p)中 路径 如果图像中的两点p和q之间存在一系列点p=p0,p1,…,pn=q,其中,pi与pi-1邻接,1≤i≤n,则称p和q之间存在长度为n 的路径。 4-路径 8-路径 像素在图像子集中的连通 设S是图像中的一个子集,p和q是S 中的点。如果从p到q之间存在一条完全由S中的点组成的路径,则称p 和q 在S中是连通的。 对于S中的任意一点p,S中所有与p 连通的点的集合称为S的连通分量。 p① 1 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 1 ①q 像素间的距离 p: (x, y) q: (s, t) z: (v,w) 如果 (a) D(p,q)≥0(D(p,q)=0 if p=q), (b) D(p,q)= D(q,p),

DICOM图像浏览器

Image Viewer using Digital Imaging and Communications in Medicine (DICOM) Trupti N. Baraskar Department of Information Technology, Maharashtra Institute of Technology, Pune University, Maharashtra, India Email: trupti_001@https://www.doczj.com/doc/567208340.html,, baraskartn@https://www.doczj.com/doc/567208340.html, Mobile No. +91-9922789956, +91-20-25462867 Abstract- Digital Imaging and Communications in Medicine is a standard for handling, storing, printing, and transmitting information in medical imaging. The National Electrical Manufacturers Association holds the copyright to this standard. It was developed by the DICOM Standards committee. The other image viewers cannot collectively store the image details as well as the patient's information. So the image may get separated from the details, but DICOM file format stores the patient's information and the image details. Main objective is to develop a DICOM image viewer. The image viewer will open .dcm i.e. DICOM image file and also will have additional features such as zoom in, zoom out, black and white inverter, magnifier, blur, B/W inverter, horizontal and vertical flipping, sharpening, contrast, brightness and .gif converter are incorporated. Keyword - Digital Imaging and Communication in Medicine (DICOM), National Electrical Manufacturers Association (NEMA), Information Object Definitions (IOD), Value Representation (VR). I.Introduction DICOM stands for Digital Imaging and Communication in Medicine. The DICOM standard addresses the basic connectivity between different imaging devices and also the workflow in a medical imaging department. The DICOM standard was created by the National Electrical Manufacturers Association (NEMA) and it also addresses distribution and viewing of medical images. The standard comprises of 16 parts [1] and it is freely available at the NEMA website: https://www.doczj.com/doc/567208340.html,./dicom.html[2] .Within the innards of the standard are also contained a detailed specification of the file format for images. The latest version of the document is as of 2008[3]. In this article present a viewer for DICOM images DICOM Image File Format This present a brief description of the DICOM image file format. Like other image file formats, a DICOM file consists of a header, followed by pixel data. The header comprises of the patient name and other patient particulars and image details. Important in the image details are the image dimensions - width, height and image bits per pixel. All these details are hidden inside the DICOM file in the form of tags and their values. Before it gets into tags and values, a brief about DICOM itself and related terminology is in place. In what follows, this explains only those terms and concepts related to a DICOM file. In particular, this does not discuss the communication and network aspects of the DICOM standard. Everything in DICOM is an object - medical device, patient, etc. An object, as in object oriented programming is characterized by attributes. DICOM objects are standardized according to IODs (Information Object Definitions). An IOD is a collection of attributes describing a data object. In other words, an IOD is a data abstraction of a class of similar real world objects which defines the nature and attributes relevant to that class [4]. DICOM has also standardized on the most commonly used attributes and these are listed in the DICOM data dictionary [6]. An application which does not find a needed attribute name in this standardized list may add its own private entry, termed as a private tag; proprietary attributes are therefore possible in DICOM. Examples of attributes are study date, patient name, modality, transfer syntax UID, etc. As it can be seen, the attributes require different data types for correct representation. This “data type” is termed as Value Representation (VR) in DICOM. There are 27 such VRs defined[5], and these are AE, AS, AT, CS, DA, DS, DT, FL, FD, IS, LO, LT, OB, OF, OW, PN, SH, SL, SQ, SS, ST, TM, UI, UL, UN, US, and UT. For example, DT represents Date Time, a concatenated date time character string in the format YYYYMMDDHHMMSS.FFFFFF&ZZXX. An important characteristic of VR is its length, which should always be even. Characterizing an attribute are its tag, VR, VM (Value Multiplicity) and value. A tag is a 4 byte value which uniquely identifies that attribute. A tag is divided into two parts, the Group Tag and the Element Tag, each of which is of length 2 bytes. For example, the tag 0010 0020 (in hexadecimal) represents Patient ID, with a VR of LO (Long String). In this example, 0010 (hex) is the group tag, and 0020 (hex) is the element tag. The DICOM data dictionary gives a list of all the standardized group and element tags. Also important is to know whether a tag is mandatory or not. For data element type, five categories are defined - Type 1, Type 1C, Type 2, Type 2C, and Type 3. One more important concept is transfer syntax. In simple terms, it tells whether a device can accept the data sent by another device. Each CP1324,I nt e r nat i onal Conf e r e nc e on M e t hods and M ode l s i n Sc i e nc e and Te c hnol ogy (I CM 2ST-10) e di t e d by R. B. Pa t e l a nd B. P. Si ngh ? 2010 A m e r i c a n I ns t i t ut e of Phys i c s 978-0-7354-0879-1/10/$30.00

相关主题
文本预览
相关文档 最新文档