脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - python 读取DICOM头文件的实例

python 读取DICOM头文件的实例

2021-02-19 00:06sunyao_123 Python

今天小编就为大家分享一篇python 读取DICOM头文件的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

用dicompyler软件打开dicom图像,头文件如图所示:

python 读取DICOM头文件的实例

当然也可以直接读取:

python" id="highlighter_110877">
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
ds = dicom.read_file('h:\data\data\\21662\\2.16.840.1.113662.2.0.105002416.1489146183.701\ct\\ct#0#21662#e7ab693d.dcm')
print ds
>>
(0008, 0008) image type       cs: ['original', 'secondary', 'axial']
(0008, 0016) sop class uid      ui: ct image storage
(0008, 0018) sop instance uid     ui: 2.16.840.1.113662.2.0.105002416.1489146183.501.0
(0008, 0020) study date       da: '20170310'
(0008, 0021) series date       da: '20170310'
(0008, 0023) content date      da: '20060505'
(0008, 0030) study time       tm: '1942'
(0008, 0031) series time       tm: '1942'
(0008, 0033) content time      tm: ''
(0008, 0050) accession number     sh: '63071'
(0008, 0060) modality       cs: 'ct'
(0008, 0070) manufacturer      lo: 'nomos'
(0008, 0090) referring physician's name   pn: ''
(0008, 1010) station name      sh: ''
(0008, 1090) manufacturer's model name   lo: 'corvus 6.4'
(0010, 0010) patient's name      pn: '*m32-2^chenjun^^^'
(0010, 0020) patient id       lo: '21662'
(0010, 0030) patient's birth date    da: ''
(0010, 0040) patient's sex      cs: ''
(0018, 0050) slice thickness      ds: '4.75'
(0018, 0060) kvp         ds: '0'
(0018, 1020) software version(s)     lo: 'corvus 6.4'
(0018, 5100) patient position     cs: 'hfs'
(0020, 000d) study instance uid     ui: 2.16.840.1.113662.2.0.105002416.1489146183.701
(0020, 000e) series instance uid     ui: 2.16.840.1.113662.2.0.105002416.1489146183.501
(0020, 0010) study id       sh: '63071'
(0020, 0011) series number      is: '0'
(0020, 0012) acquisition number     is: '0'
(0020, 0013) instance number      is: '0'
(0020, 0020) patient orientation     cs: ['l', 'p']
(0020, 0032) image position (patient)   ds: ['0.73437356948853', '0', '3.25']
(0020, 0037) image orientation (patient)   ds: ['1', '0', '0', '0', '1', '0']
(0020, 0052) frame of reference uid    ui: 2.16.840.1.113662.2.0.105002416.1489146183.601
(0020, 0060) laterality       cs: ''
(0020, 1040) position reference indicator  lo: ''
(0020, 1041) slice location      ds: '3.25'
(0028, 0002) samples per pixel     us: 1
(0028, 0004) photometric interpretation   cs: 'monochrome2'
(0028, 0010) rows        us: 330
(0028, 0011) columns        us: 339
(0028, 0030) pixel spacing      ds: ['0.734375', '0.734375']
(0028, 0100) bits allocated      us: 16
(0028, 0101) bits stored       us: 12
(0028, 0102) high bit       us: 11
(0028, 0103) pixel representation    us: 0
(0028, 1052) rescale intercept     ds: '-1024'
(0028, 1053) rescale slope      ds: '1'
(7fe0, 0010) pixel data

发现一套图的第一张和最后一张的slice thickness往往和中间层的值是不同的。

?
1
2
3
path = 'h:\data\data\\21662\\2.16.840.1.113662.2.0.105002416.1489146183.701\ct\\a.dcm'
slices = dicom.read_file(path)
spacing = slices.pixelspacing

读取头文件信息方法:

slices.上图头文件中的name列。

这时要注意的是,name大小写不变,去掉空格,去掉符号,比如括号。

举例:

?
1
2
3
origin = slices.softwareversions
print origin
>>corvus 6.4
?
1
2
3
spacing = slices[1].pixelspacing
print spacing
>>['0.734375', '0.734375']

以上这篇python 读取dicom头文件的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/sunyao_123/article/details/73655897

延伸 · 阅读

精彩推荐