单张dcm的话,正常怎么也得1000多kb了
100多kb的话,确实是很小
很可能是没有拿腊液游到原件,可能是医院的条例原因吧
所以正常上百张轮销图片,起码也要两三千M才正常吧
能不能看清楚,你尝试一下在电脑上,感觉可能不是高埋首清的哦
本章将结合开源项目 IMBRA 讲解如何解析一个DCM文件
文件开头会有128字节的导言,这部分数据没有内容。接着是4字节DICOM文件标识,存储这"DICM"。然后紧接着就是dicom数据数据元素了
旧版本的DCM文件会在开头8个字节验证芦腊签名,在读完128字节后,读取4个字节验证DICOM标识。
接下来开始读取数据元素了,现读取两个字节的tagId,并且验证大小端。
dicom的数据元素的tagId是从大到肆大小的读取的,而最小的tagId就是从0x0002,当tagId不是0x0002说明已经陪雹滑读取完所以关于0x0002的tagId。从中找出(0002,0010)的tag,这个tag设置当前数据是否大端格式,显示VR编码还是隐式VR编码。 "1.2.840.10008.1.2.2" 表示大端格式, 1.2.840.10008.1.2 表示隐式编码。
显示编码解析 取先获取VR 再获取长度 最后获取值
隐式编码解析
dicom文件解析Dicom全称是医学数字图像与通讯,这里讲diocm格式文件的解读,读取本身是没啥难度的 无非就是字节码数据流处理。只不过确实比较繁琐。
整体结构先是128字节所谓的导数基言部分,跳过就是了,接着就是四个字节组成的字符串,然后是dataElement元素依次排列的方式, 就是一个dataElement接一个dataElement的方式排到文件结尾.我们要读取dicom里面的各种数据就是在各个数据元素中。通俗的讲dataElement就是指tag,就是破Dicom标准里定义的数据字典,每个dataElement中的tag决定自身或整个文件的某些数据类型或自身dataElement内容类别。
其中tag和VR是要重点理解,也是比较难理解的!
一.标记tag(2字节UInt16分组号和2字节UInt16元纤哗素号)
tag是4个字节表示的 前两字节是组号后两字节是元素号 比如毁毕行0008(组号) 0018(元素号)。
我们获取dicom里面的数据,就是根据tag,来知道这个dataElement里面是否是我们需要的数据,然后读取该dataElement里面的数据。
一般我们获取dataElement中的数据的主要组号
0002组描述设备通讯,0008组描述特征参数,0010组描述患者信息,0028组描述图像信息参数
还是有很多其他组号的,但是里面的数据不常用到,tag总共大约有2000个,但是我们常用的数据就那么几个!
dicom文件数据中所有dataElement从前到后按tag又可简单分段:文件元tag,普通tag,像素tag。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)