Dicom文件中图像参数详解
- 格式:doc
- 大小:19.50 KB
- 文档页数:4
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。
Dicom文档里保存的到底是什么数据?CT值反应的是物质对x射线衰减的能力,即衰减系数,密度越大的物质,CT值越高,人们把标准状态下空气的CT值定义为-1000HU,把水的CT值定义为0HU,其他物质根据密度按比例计算出来,常见物质的CT值范围是-2000到3071HU,CT值越大,图像显示越亮,但是通常把CT值低于-1024HU的都按-1024计算,所以常见的CT值范围是-1024—3071HU。
CT采集图像时,在硬盘上保存的数据是以像素的灰度值表示的数据文档,是12位灰度图像,当被蚂蚁等dicom阅读软件读取时,软件会自动转化为CT值显示出来,因此dicom文档在硬盘上保存的是灰度值,而显示时在内存里保存的是CT值。
在每个dicom文档里的tag文档里都有以下几个数据:这些数据是用来进行灰度值(image pixel value)与CT值之间转换的,其转换方法如下:HU=slope×image pixel value+intercept注:12位灰度图像的像素值最高灰度值即图像像素值(image pixel value)是2的12次方,即4096,实际是4095。
根据上述公式,也可以计算出最大的CT值:1×4095+(-1024)=3071HU以实际图像为例:该图的tag文档里Smallest image pixel value=0Largest image pixel value=3420image pixel value=3420slope=1,intercept=-1024经过上述公式的计算,理论上图中最大的CT值应该:1×3420+(-1024)=2396HU,最小的CT值应该:1×0+(-1024)=-1024通过蚂蚁的工具,实际也可以找到最大的CT值就是2396HU,最小CT值是-1024。
因此,我们用蚂蚁软件读取dicom数据,其显示的就是正常的CT值,并没有任何不符合实际的情况。
Dicom医学图像与nii标签数据处理Dicom 医学图像与 nii 标签数据处理Ⅰ. Dicom医学dicom 图像就长这样dicom图像的源数据范围相当⼤,⽽转化为图像形式保存的数据则为uint8类型,直接转化会有损失,本⽂将其转为.npy形式。
Ⅱ. nii标记数据处理使⽤ITK-SNAP对dicom 图像进⾏标记同样转化为.npy格式Ⅲ. 综合数据处理1. code1使⽤本代码是在dicom数据转化为.npy格式,⽽.nii的标记数据还未进⾏转化的情况下import numpy as np import os #遍历⽂件夹import nibabel as nib #nii 格式⼀般都会⽤到这个包import imageio #转换成图像from matplotlib import pyplot as plt import cv2 def nii_to_image (niifile ): filenames = os .listdir (filepath ) #读取nii ⽂件夹 slice_trans = [] for f in filenames : #开始读取nii ⽂件 img_path = os .path .join (filepath , f ) img = nib .load (img_path ) #读取nii img_fdata = img .get_fdata () fname = f .replace ('.nii','') #去掉nii 的后缀名 #开始转换为图像 (x ,y ,z ) = img .shape for i in range (0,z ): silce = img_fdata [:, :, i ] slice_trans .append (silce ) return slice_trans def get_image_file (file_dir ): image_data = [] files = os .listdir (file_dir ) files .sort (key = lambda x :int (x [:-4])) for file in files : if os .path .splitext (file )[1] == '.npy': img_item = np .load (file_dir + file ) image_data .append (img_item ) return image_data if __name__ == '__main__': filepath = './imgData/seg12190000' label = nii_to_image (filepath ) file_dir = './Documents/dicom2npy_75989854/' image_data = get_image_file (file_dir ) imgfile = './imgData/label/' for i in range (len (image_data )): filename_item = imgfile + str (i + 1) img_item = image_data [i ] # 简单对 img 进⾏处理 img_item [img_item < 0] = 0 img_item [img_item > 512] = 512 # img_item.dtype = np.uint8 img_item = img_item .astype (np .uint8) # 不知道为什么只有这样才能整出来 label_item = label [149-i ] label_item = np .rot90(label_item , -1) label_item = np .flip (label_item , 1) # 图⽚做成三通道查看⼀下效果 img_item = cv2.merge ([img_item , img_item , img_item ]) img_item [label_item > 0] = img_item [label_item > 0] * 0.6 + (80, 0, 0) # imageio.imwrite(os.path.join(imgfile, '{}.png'.format(i)), img_item) # imageio.imwrite(os.path.join(imgfile, '{}.png'.format(i)), label_item) # 保存调试好的label, 反序 + 左右翻转 + 旋转-1*90 np .save (os .path .join (imgfile , '{}.npy'.format (i )), label_item ) print (i )12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364652. 需要说明不知道为什么,采⽤上述博客的做法即对提取出的标记数据以silce = img_fdata[:, :, i]直接进⾏切⽚效果对不上。
DICOM医学影像⽂件格式解析DICOM医学影像⽂件格式解析dicom协议中⽂⽂档可去csdn下载1.DICOMDICOM(DigitalImaging andCommunications inMedicine)是指医疗数字影像传输协定,是⽤于医学影像处理、储存、打印、传输的⼀组通⽤的标准协定。
它包含了⽂件格式的定义以及⽹络通信协议。
DICOM是以TCP/IP为基础的应⽤协定,并以TCP/IP联系各个系统。
两个能接受DICOM格式的医疗仪器间,可通过DICOM格式的⽂件,来接收与交换影像及病⼈资料。
⽬前,DICOM被⼴泛应⽤于放射医疗,⼼⾎管成像以及放射诊疗诊断设备(X射线,CT,核磁共振,超声等),并且在眼科和⽛科等其它医学领域得到越来越深⼊⼴泛的应⽤。
⽬前采⽤的标准是DICOM3.0,每⼀张图像中都携带着⼤量的信息,这些信息具体可以分为以下四类:(a)Patient(b)Study(c)Series(d)Image每⼀个DICOM Tag都是由两个⼗六进制数的组合来确定的,分别为Group和Element。
如(0010,0010)这个Tag表⽰的是Patient’s Name,它存储着这张DICOM图像的患者姓名。
2.DICOM存储格式DICOM⽂件的整体结构如下表所⽰,先是128字节的导⾔部分(没有实际信息),接着是四个字节组成的"DICM"字符串,然后是若⼲DataElement元素依次排列直⾄⽂件结束。
导⾔"DICM"DataElement DataElement...DataElement128 Byte 4 Byte n Byte n Byte n Byte2.1 DataElement的三种结构DataElement是存储⽂件信息的主体,DataElement的总体结构如下表所⽰:Tag VR(值表⽰法)Len(数据长度)数据值(内容)4 Byte 2 Byte 2 Byte Len ByteTag由2 Byte的组号(group)和2 Byte的元素号(element)组成,VR是DICOM特有的值表⽰法,关于值表⽰法的解释见下⽂按照VR的类型以及是否显⽰VR,DataElement⼜分为三种具体的结构。
医学图像格式转换及读取与显示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.读取与显示DICOM图像Matlab提供了dicominfo、dicomdict、dicomdisp、dicomread、dicomuid 、dicomwrite函数,可实现DICOM格式图像的读取、显示、保存等操作,以及查看扫描信息。
3.读取与显示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);4.Freesurfer的mgh图像读取与显示Freesurfer安装目录下有一个matlab程序包,提供了load_mgh, save_mgh等函数实现该文件的读取与显示。
DICOM简要说明一、概述 (2)二、DICOM基本介绍 (3)DICOM解释 (3)DICOM资料的结构 (3)DICOM的服务功能对(SOP) (4)SCU/SCP(ServiceClass User/Provider) (5)DICOM的工作过程 (5)三、常用测试工具介绍 (6)四、实际DVT测试 (7)模拟器配置介绍 (7)Print SCP模拟器 (11)Storage SCU模拟器 (17)Worklist SCP模拟器 (18)DICOM Network Analyzer (19)五、EFILM功能介绍 (24)Storage SCP测试 (26)Storage SCU测试 (27)Query/Retrieve测试 (29)一、概述文档编写目的是为了大家对DICOM有一些基本的了解与一些DICOM测试工具的简单使用方法。
二、DICOM基本介绍引用:DICOM解释DICOM(digital imaging communications in medicine)。
从字面上解释,第一,应用对象是数字化的图像;第二,DICOM规范的核心是“通信”。
综上所述,DICOM可以解释为“医学数字化图像通信/交流的共同规格”,既“医学数字成像和通信”。
DICOM资料的结构一个患者到医院就诊,为了判断他的病灶,医生需要指定不同的检查(例如: CT,MR,超声),每一项检查都需要由相对应的仪器完成,但仪器产生的是一系列的影像(例如CT产生一组10张,MR产生10张和20张各一组影像),这些影像和病人如何产生关联呢?在DICOM规格中,使用了相对应的资料结构来描述: 定义出Patient,Study,Series,Image四个层次来存储上述例子。
Patient中包含了该病人的所有基本资料(姓名,性别,年龄等)和医生指定的检查Study;Study中包含了检查种类(CT,MR,B超)和指定检查的Series;Series中包含检查的技术条件(毫安,FOV,层厚等)和图像Image。
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文件可以大致分为两部分:一部分:与图像相关的元信息,包括患者信息,检查信息,序列信息,图像信息等等。
另一部分:图像的像素数据。
在解析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.2289181.(0028,0002) Samples per Pixel每一个像素的取样数,一般来说,CT,MR,DR等灰度图像都是1,而彩超等彩**图像都是3,分别表示R, G, B三个颜色通道。
接着昨天,对文件格式的分析: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文件的传输识别有关的识别码。
特别专题Exclusive Subject
特别专题Exclusive Subject
特别专题
Exclusive Subject 表1 值描述包含的部分数据类型
数据长度。
该项是无符号整数,
根据VR的种类不同占2个字节或4个字
节。
数据长度的作用是指定Value Field
项目所占字节数。
DICOM规定数据
长度值(字节)必须为偶数,当值长
度为0xFFFFFFFF是表示未确字节数
(Undefined Length),这是为了解
决特殊或以后未知的的数据元素,如
当VR是序列类型SQ时,其数据长度就
不能简单在Value Length段给出。
数据区。
它是该数据元素实际值
存储地方。
存储的数据类型取决于数
据元素VR。
表2列出三种不同传输语
法情况下的数据元素的格式(单位:
字节),其字节数必须能整除2。
表2 三种不同传输语法数据元素
DICOM在计算机中采用的字节排
序存储机制主要有两种。
小端(Little Endian):在一个
多字节的二进制存储中,把重要程度
最小的字节放在最前面编码,而其他
的字节按照重要程度的升序排序[6]。
图4 DICOM V3.0文件头格式
图4是一段以16进制显示DICOM
《中国数字医学》2014年第9卷第3期。
医学数字影像和通讯(DICOM)第十四部分:灰度标准显示函数由国际电气制造业协会出版1300 N. 17th StreetRosslyn,Virginia 22209 USA版权所有(C)国际电气制造业协会2003。
包括译成其他语言的版权所有,受世界版权公约、伯尔尼公约或文学艺术著作保护公约、以及国际和泛美版权公约保护。
-标准-通知及免责声明该出版物技术方面的信息得到了参加该开发成员的一致同意目录通知及免责声明 (2)目录 (3)前言 (5)1.应用的领域和范围 (6)2.标准参考 (6)3.定义 (8)4.符号和缩略语 (8)5.惯例 (8)6.概述 (8)7.灰度标准显示函数 (11)7.1一般规则 (12)7.2传输式硬拷贝打印机 (13)7.3放射式硬拷贝打印机..................................................................... 错误!未定义书签。
8.参考.................. ..................................................................................... 错误!未定义书签。
附录A(提供资料)灰度标准显示函数的出处 (16)A.1.选择灰度标准显示函数的原因................................................ 错误!未定义书签。
A.2.BARTEN模型的详细资料 ....................................................... 错误!未定义书签。
A.3.参考............................................................................................... 错误!未定义书签。
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文件可以大致分为两部分:
一部分:与图像相关的元信息,包括患者信息,检查信息,序列信息,图像信息等等。
另一部分:图像的像素数据。
在解析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.\0. (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:
1.(0028,0002) Samples per Pixel
每一个像素的取样数,一般来说,CT,MR,DR等灰度图像都是1,而彩超等彩**图像都是3,分别表示R, G, B三个颜色通道。
2.(0028,0004) Photometric Interpretation
我们经常碰到的Photometric Interpretation有以下几种类型:
Monochrome2 一般的灰度图像都采用这种,Pixel值越大,图像就越白。
Monochrome1 只有部分CR, DR图像使用,Pixel值越大,图像就越黑。
Palette Colour 一般用于彩超图像,每个像素占用8位或者16位,调色板保存在[0028,1201]RedPaletteColorLookupTableData, [0028,1202]GreenPaletteColorLookupTableData, [0028,1203]BluePaletteColorLookupTableData的属性中。
RGB 这是最常用的彩**图像格式。
YBR_FULL 另外一种彩**图像格式,存储格式为Y(Luminance 亮度),B(Blueness 蓝色),R(Redness, 红色)
YBR_FULL_422 一般用于JPG有损压缩格式的彩**图像,每两个像素共同使用32位,每一个像素都有自己的Y(Luminance 亮度),但是共享相同的B(Blueness 蓝色),R(Redness, 红色)。
所以,它的像素值存储方式是:YYBR,YYBT,YYBR
YBR_RCT 用于JPEG 2000无损压缩彩**图*像,Reversible Color Transformation, 可逆色彩变换。
Y = (R+2G+B)/4, CB = B-G ,CR = R - G
G = Y - (CR+CB)/4 , R = CR + G, B = CB + G
YBR_ICT 用于JPEG 2000有损压缩彩**图像Irreversible Color Transformation, 不可逆色彩变换。
Y = + .29900R + .58700G + .11400B
CB = - .16875R - .33126G + .50000B
CR = + .50000R - .41869G - .08131B
3. (0028,0010)Rows
图像的高度
4. (0028,0011)Columns
图像的宽度
5. (0028,0030)Pixel Spacing
图像像素间距,读取Pixel Data的时候不需要,主要用于长度测量。
6. (0028,0100)Bits Allocated
一个像素取样点存储时分配到的位数,一般RGB的图像,每一个颜色通道都使用8位,所以一般取值为8。
对于灰度图像,如果是256级灰阶,一般就是8位。
如果高于256级灰阶,一般就采用16位。
7. (0028,0101)Bits Stored
一个像素取样点存储时使用到的位数。
比方说示例中CT影像,采用的是4K灰阶,像素值取值范围为0~4095,所以使用到的位数为12位。
8. (0028,0102)High Bit
最高位序号,它定义了存储点在分配的内存中的排列方式,它的值是最后一个bit的序号。
如果第一个bit放在0位,那么最后一个bit为Bits Stored -1。
9. (0028,0103)Pixel Representation
如果这个值为0,这表明是无符号类型,其VR类型应该为US,Unsigned Short. 如果这个值为1,这表明为有符号类型,其VR类型应该为SS,Signed Short.
10. (0028,1050)Window Center 和(0028,1051) Window Width
窗宽窗位,不解释
11. (0028,1052)Rescale Intercept 和(0028,1053)Rescale Slope
用于根据像素值计算原始值,比方说,CT可以用于计算HU值。
比方说:HU = Rescale Slope * X + Rescale Intercept.
12. (0028,2110)Lossy Image Compression
当该值为1时,表明该图像曾经经过有损压缩处理。
即使后来解压缩后,再用非压缩格式存储和传输,该值也需要保持为1.
13. (0028,2112)Lossy Image Compression Ratio
有损压缩压缩率。
对于多帧图像,我们还需要读取Number of Frames (0028,0008)来获取帧数,然后,逐帧读取Pixel Data。
对于彩*图像,我们还需要读取Planar configuration (0028,0006),它定义了各个彩色通道值在Pixel Data中排列的排列方式。
当此值为0的时候,它这样排列的RGBRGBRGBRGBRGB。
当此值为1的时候,它是这样排列的:RRRRR......GGGGG.......BBBBB。
对于多帧图像,它是这样排列的:第一帧的RRR..,第一帧的GGG...,第一帧的BBB...,第二帧的RRR..,第二帧的GGG...,第二帧的BBB...。