it编程 > 游戏开发 > vr

DICOM 文件中,VR,VL,SQ,图像二进制的几个注意点

106人参与 2024-08-03 vr

dicom 文件的结构,在网上有很多的学习资料,这里只介绍些容易混淆的概念,作为回看笔记。

1. 传输语法

每个传输语法,起都是表达的三个概念:大小端、显隐式、压缩算法

dicom implicit vr little endian: 1.2.840.10008.1.2
dicom explicit vr little endian: 1.2.840.10008.1.2.1
dicom explicit vr big endian: 1.2.840.10008.1.2.2
jpeg_lossless_transfer_syntax: “1.2.840.10008.1.2.4.70”;
在dcmtk中,dcmdata工程内dcxfer.cc文件都有明确的标识,例如jpeg_lossless_transfer_syntax: “1.2.840.10008.1.2.4.70”; 表示

{ uid_jpegprocess14sv1transfersyntax, // "1.2.840.10008.1.2.4.70"
  "jpeg lossless, non-hierarchical, 1st order prediction",
  exs_jpegprocess14sv1,
  ebo_littleendian,
  evt_explicit,
  eje_encapsulated,
  14l ,14l,
  offalse,
  offalse,
  esc_none },

上边就表示了jpeg_lossless_transfer_syntax这个传输语法,是小端和显式的。

2 显式vr

组号元素号vr+预留值长度数据元素值
2字节2字节2字节+2字节(0x00,0x00)4字节由数据长度决定

在这里插入图片描述

组号元素号vr+预留值长度数据元素值
2字节2字节2字节2字节由数据长度决定

在这里插入图片描述

组号元素号值长度数据元素值
2字节2字节4字节由数据长度决定

在这里插入图片描述

3. sequence二进制文件编码

3.1. 显式长度

当sequence的数据元素值被编码为32位无符号整数值的时候,这个长度应该包括由该数据元素传递的零个或多个item产生的总长度。如果项目序列包含零个项目,则此数据元素长度应为00000000h。
在这里插入图片描述
以下是一个例子:
在这里插入图片描述
因为这个文件是显式小端(边)编码方式,标注1表示组号和元素号,标注2中显示,前两个字节是sq,接下来2个字节是预留00 00,标注3中,长度是0x18,也就是24个字节长度,这就表示接下来的24个字节都是此sequence元素。
接下来我们再详细看下sequence内部item的定义的结构;内部的item以fffe,e000开始,然后是4个字节的长度,然后是一个标准的dataset集合。
在这里插入图片描述
上图中,标注1就是sequence中的item的开始。
在这里插入图片描述

3.2 当sequence中,是未定义的长度,也就是,数据元素长度字段为ffff,ffffh的值的时候,此时,它应与序列定界项目结合使用。序列定界项目应位于项目序列的最后一个项目之后,其item的标签应为(fffe,e0dd),项目长度为00000000h。

在这里插入图片描述
以下是一个西门子ct产生的dicom文件片段,我个人感觉这个文件是错误的。
在这里插入图片描述
大家可以看到标注1的位置,表示这个sequence是没有设定长度的,所以,它的结尾是以fffe,e0dd结束,后边再跟上0000 0000.也就是标注4所指的位置。这里,注意一下,第一个item的长度是四个字节,使用55 00 00 00来表示,换算为十进制就是85个字节,实际上接下来有122个字节,这里我感觉应该是7a 00 00 00。接下来的item都是正常,这里注意,内部也同样包含了一个sq,内部的sq的长度也是用ff ff ff ff表示的,这里的第一个item的长度文件内记为10 00 00 00,也就是16个字节,通过观察,确实是16个字节的长度,这样也可以进一步证明,标识2的位置55 00 00 00是错误的。或者,我理解错了,大家一起探讨。

4 文件二进制数据

隐式小端

下面给的一个例子是隐式,小端的例子。可见grouptag(7fe0)和elementtag(0010),在实际二进制排列中是e07f 1000的二进制;0x00080000=524288个字节=2byte512512在这里插入图片描述

显式,小端

可见grouptag(7fe0)和elementtag(0010),vr:ow 缺省两个字节 ,vl: 0x00 08 00 00=524288个字节=2byte512512
在这里插入图片描述

jpeglossless 二进制存储方式 小端 显式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

VR主观实验问卷设计与数据处理-临场感IPQ及晕动症SSQ

08-03

0基础学习VR全景平台篇 第56篇:专业版功能-故事线

08-03

0基础学习VR全景平台篇第128篇:720VR全景拍摄设备推荐

08-03

计算机视觉在社交媒体行业:内容推荐与用户分析

08-02

2024图像处理、计算机视觉和模式识别国际会议(IPCVR 2024)

08-02

自动驾驶传感器:惯性导航IMU原理

08-04

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论