IDL:读取多个DICOM图像将它们保存在.dat文件中

时间:2018-11-16 12:52:29

标签: image dicom idl-programming-language

我正在用IDL编写程序来读取DICOM图像,然后将它们存储在一个大矩阵中,最后将它们保存在.dat文件中。 DICOM的名称为 IM0,IM1,IM2,.. IM21777 。我在下面编写了代码,但出现错误。我正在使用IDL 6.4版。

files = file_search('E:\SE7\IM*)
n_files = n_elements(files)

full_data = fltarr(256,256,n_files)

for i=0L, n_files-1 do begin 
    full_data[*,*,i] = read_dicom('E:\SE7\IM')
endfor

path  = 'E:\'
open, 1, path + "full_data.dat'
writeu, 1, full_data
close, 1

我不确定如何遍历DICOM名称,即IM0,IM1,IM2等

将它们存储在大矩阵中后(即full_data = [256,256,2178]),我想将3D矩阵设置为4D。那可能吗?我想使其尺寸为[256、256、22、99],即2178/99。

1 个答案:

答案 0 :(得分:0)

我不确定您遇到什么错误,但是您在第一行中缺少引号。应该是:

files = file_search('E:\SE7\IM*')

要遍历DICOM名称,您可以使用+STRTRIM()来字符串连接循环索引,如下所示:

for i=0L, n_files-1 do begin 
    full_data[*,*,i] = read_dicom('E:\SE7\IM'+STRTRIM(i,2))
endfor

最后,要将{256,256,2178)矩阵转换为(256,256,22,99)矩阵,请使用REBIN

final_data = REBIN(full_data, 256, 256, 20, 99)

根据您要安排尺寸的方式,可能需要其他操作。这篇文章是有关如何操作数组及其维数的入门知识:Coyote Dimensional Juggling Tutorial