以前我在處理醫學圖像數據時,往往都是處理nii 的數據。我要需要對圖像進行切片時。直接讀出矩陣時就可以了。最近有一批新的數據是dcm 類型的。由於dcm數據的獨特性。每一個文件基本就是一個切片。因此我就直接進行讀取了。我使用了
label_path = 'H:\\CTdata3\headCTA\\DICOM'
slices = [pydicom.dcmread(label_path + '\\' + s) for s in os.listdir(label_path)]
然後我就開始繼續進行其他操作。最後發現讀取出來的數據原來的切片的數據的順序完全不一樣了。
我打開文件夾一看發現
文件夾裏面的數據都是這樣。發現直接遍歷是很難按順序讀出來。最後發現數據再上面的代碼中加一段就可以了。
slices.sort(key = lambda x: int(x.InstanceNumber))
這樣整個文件都可以按照順序讀出來了。
在這裏讀出來之後也許你還想保存下來,把這些重新編號排序。可以這麼操作
for i in range(736):
s=image[i]
s.save_as("H:\\CTdata3\\labeldcm\\IM"+str(i))
這樣你就可以按順序保存成 dcom 數據了