Dicom格式文件解析器

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Dicom格式文件解析器

学数字图像与通讯,这里讲的暂不涉及通讯那方面的问题只讲*.dcm也就是diocm格式文件的读取,读取本身是没啥难度的无非就是字节码数据流处理。只不过确实比较繁琐。

分析

又把论文里的这图贴上来总结的很好。单个dataElement的结构如下:

隐式VR?时元素结构

要问VR是啥东东,值表示法啥叫值表示法啊俺不懂intstringshortushort懂不就是这个意思,Dicom标准真坑爹非要整个怪怪的概念。

VR总共27个跟c#值类型对应关系我都写好了:

1string getVF(string VR,byte[]VF)

2{

3

4

5{

6case

7

8break

9case

10

11

12

13case

14

15

16

17case

18

19

20

21case

22

23

24

25case

26

27

28break;

29case"FD":

30VFStr=BitConverter.ToDouble(VF,0).ToString();

31

32break;

33case"OB":

34VFStr=BitConverter.ToString(VF,0);

35break;

36case"OW":

37VFStr=BitConverter.ToString(VF,0);

38break;

39case"SQ":

40VFStr=BitConverter.ToString(VF,0);

41break;

42case"OF":

43VFStr=BitConverter.ToString(VF,0);

44break;

45case"UT":

46VFStr=BitConverter.ToString(VF,0);

47

48case

49

50

51

52

53

54}

55

56}

找个

所有dataElement从前到后按tag又可简单分段:

几个特殊的tag很重要前面说过了tag就是dicom里定义的字典。文件元dataElement和跟像素数据相关的dataElement都很重要,其他的很多如果全部照顾完的话估计得写上千行switch语句

来确定

关键的

1

2{

3

4{

5case

6

7break

8case

9

10

11case

12

13

14case

15

16

17case

18

19

20case

21return"SQ";

22break;

23case"0008,1111":

24return"SQ";

25break;

26case"0008,0020"://检查日期

27return"DA";

28break;

29case"0008,0060"://成像仪器

32case"0008,0070"://成像仪厂商

33return"LO";

34break;

35case"0008,0080":

36return"LO";

37break;

38case"0010,0010"://病人姓名

39return"PN";

40

41case

42

43

44case

45

46

47case

48

49

50case

51

52

53case

54

55

56case

57

58

59case

60

61

62case

63

64

65case"0020,0013"://影像编号

66return"IS";

67break;

68case"0028,0002"://像素采样1为灰度3为彩色69return"US";

70break;

71case"0028,0004"://图像模式MONOCHROME2为灰度72return"CS";

73break;

74case"0028,0010"://row高

77case"0028,0011"://col宽

78return"US";

79break;

80case"0028,0100"://单个采样数据长度81return"US";

82break;

83case"0028,0101"://实际长度

84return"US";

85

86case

87

88

89case

90

91

92case

93

94

95case

96

97

98case

99

100

101

102

103

104

105

106

107

108

109

110case"7fe0,0010"://像素数据开始处111return"OW";

112break;

113default:

114return"UN";

115break;

116}

117}

最关键的两个tag:

相关文档
最新文档