最近我看到一些带有大端传输语法的彩色DICOM文件,其中像素数据具有OW(其他字)值表示。文件中的字节顺序是
R1G1B1R2G2B2 etc
AFAIK,根据DICOM标准(第5部分,第8.1节, OW和OB之间唯一的区别是OB,一串字节,不受Byte Ordering 的影响),当将此图像转换为little endian时,应更改字节顺序以使其成为
G1R1R2B2B2G2 etc
但这没有任何意义!该图像显然旨在具有其他字节值表示。作为有趣的细节,图像还包含一个带有较小版本pixeldata的图像图像序列,它也有OW VR,但这里的字节实际上是交换的! (以这种方式:G1R1R2B2B2G2)。所以它甚至不一致......
我的问题是:它甚至合法吗?我应该如何改变这种图像的字节顺序?
对于cdeszaq,编辑:根据DICOM标准第5部分,第7.3节:
不是字符串且由多个字节组成的VR是:
2字节美国,SS,OW和AT的每个组成部分
4字节OF,UL,SL和FL
8字节FD
这表明单词大小已由VR指定。
答案 0 :(得分:3)
该标准还定义了使用比它们所包含的单词更少或更多位的像素值如何在单词中对齐,因此我认为将OW作为VR是合法的(第5部分附录D)
答案 1 :(得分:0)
要更改OW图像数据的字节顺序,您需要知道单词的大小。如果您不知道知道单词大小,则无法更改endiannes。
更详细地说,字的字节顺序是指字中字节的排序,从大到小,或从小到大。如果您不知道单词边界在字节流中的位置,则无法对它们进行重新排序,因为您不知道当前在哪个位置在这个词里面。
缺少单词(即只是一个流/字节串)是允许OB对象不受endiannness影响的原因,因为单词实际上是1个字节长。
答案 2 :(得分:0)
我建议引用DICOM标准PS 3.5的附录A. A.2涵盖了显式VR小端和状态:
数据元素(7FE0,0010)像素数据 - 其中分配的位数(0028,0100)具有大于8的值应具有值 表示OW并应以Little Endian编码; - 其中分配的位数(0028,0100)具有小于或等于8的值应具有 值表示OB或OW,应以Little Endian编码。
因此,对于分配了8位的图像(例如RGB,其中分配了8位并且每个像素有3个样本),OW的VR是可接受的。