gpt4 book ai didi

python 读取dicom文件,生成info.txt和raw文件的方法

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 29 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章python 读取dicom文件,生成info.txt和raw文件的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

目标:利用python读取dicom文件,并进行处理生成info.txt和raw文件 。

实现:通过pydicom读取dicom文件 。

代码:

?
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
52
53
import numpy
import pydicom
import os
 
# dicom文件所在的文件夹目录
PathDicom = '/home/lk/testdata/1.3.6.1.4.1.9328.50.1.42697596859477567872763647333745089432/'
 
# 筛选出文件夹目录下所有的dicom文件
lstFilesDCM = []
for dirName, subdirList, fileList in os.walk(PathDicom):
   for filename in fileList:
     if '.dcm' in filename.lower():
       lstFilesDCM.append(os.path.join(dirName, filename))
 
# Get ref file
RefDs = pydicom.read_file(lstFilesDCM[ 0 ])
 
# Load dimensions based on the number of rows, columns, and slices (along the Z axis)
ConstPixelDims = ( int (RefDs.Rows), int (RefDs.Columns), len (lstFilesDCM))
 
# Load spacing values (in mm)
ConstPixelSpacing = ( float (RefDs.PixelSpacing[ 0 ]), float (RefDs.PixelSpacing[ 1 ]), float (RefDs.SliceThickness))
 
# save info.txt
info = ConstPixelDims + ConstPixelSpacing
f = open ( '/home/lk/testdata/1.3.6.1.4.1.9328.50.1.42697596859477567872763647333745089432/info.txt' , 'w' )
for n in info:
   f.write( str (n) + ' ' )
f.close()
 
 
# According to location sorting
location = []
for i in range ( len (lstFilesDCM)):
   ds = pydicom.read_file(lstFilesDCM[i])
   location.append(ds.SliceLocation)
location.sort()
 
# The array is sized based on 'ConstPixelDims'
ArrayDicom = numpy.zeros(( len (lstFilesDCM), RefDs.Rows, RefDs.Columns), dtype = RefDs.pixel_array.dtype)
 
# loop through all the DICOM files
for filenameDCM in lstFilesDCM:
   # read the file
   ds = pydicom.read_file(filenameDCM)
   # store the raw image data
   ArrayDicom[location.index(ds.SliceLocation), :, :] = ds.pixel_array
 
# save raw
ds = ArrayDicom.tostring()
f = open ( '/home/lk/testdata/1.3.6.1.4.1.9328.50.1.42697596859477567872763647333745089432/1.raw' , 'wb' )
f.write(ds)
f.close()

代码编写过程遇到的问题及解决方法:

Problem one: pydicom版本问题.

pydicom1.x中读取dicom文件调用pydicom.read_file(filename),

pydicom0.9中读取dicom文件调用dicom.read_file(filename),

Problem two:python中IO操作 。

(1) f = open(filename, mode) 。

其中filename为文件的路径, mode为操作标识符:‘r' 表示读, ‘w'表示写,‘a'表示既可读又可写,‘b'表示二进制文件.

(2) f.write(value) 。

其中参数value必须是字符串类型的.

当然还有一些其他的问题,在这里就不细说了,多入坑才能学的多,切不可烦躁,代码就是要多敲才能得心应手,共勉.

以上这篇python 读取dicom文件,生成info.txt和raw文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.

原文链接:https://blog.csdn.net/likanglearning/article/details/79475404 。

最后此篇关于python 读取dicom文件,生成info.txt和raw文件的方法的文章就讲到这里了,如果你想了解更多关于python 读取dicom文件,生成info.txt和raw文件的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com