遍历文件夹将dicom文件转换为nifty文件

1.读取文件

使用os.listdir对文件夹进行遍历返回到path_list中。

由于我需要文件夹中每个文件的第一个文件进行格式转换所以多了个for循环,来获取第二层文件夹。这里path_list中存的是子文件夹名称,也就是[82015015,82019310,......]

path = 'D:/Study/数据集/数据2'
path_list = os.listdir(path)

arr = []
for i in path_list:
        path2 = 'D:/Study/数据集/数据2/'+i
        path_list2 = os.listdir(path2)
        arr.append(path_list2[0])

2.格式转换

使用dicom2nifti.convert_directory进行转换

dicom2nifti.convert_directory(需要转换的文件路径,转换后存放位置,ture,ture)

这里一共有74个数据集需要转换,使用for循环一个一个遍历即可,路径有时候会出问题可以把斜杠换个方向试试,但一定要全部保持一致

for j in range(74):  
        dicom_directory = 'D:/Study/数据集/数据2/'+path_list[j]+'/'+arr[j]    #目标文件路径
        #name = dicom_directory.split('\\')[2]

        output_folder = 'D:/Study/数据集/数据2/'+ path_list[j]                 #存储路径

        dicom2nifti.convert_directory(dicom_directory, output_folder, compression=True, reorient=True)

最后会转换出很多个压缩包,选最大的一个就是

 完整代码如下

import dicom2nifti
import os
import numpy as np

path = 'D:/Study/数据集/数据2'
path_list = os.listdir(path)
#path_list.remove('.DS_Store')    # macos中的文件管理文件,默认隐藏,这里可以忽略
print(path_list)

arr = []

for i in path_list:
        path2 = 'D:/Study/数据集/数据2/'+i
        path_list2 = os.listdir(path2)
        arr.append(path_list2[0])
        #print(path_list2[0])
print(arr)

for j in range(74): 
        dicom_directory = 'D:/Study/数据集/数据2/'+path_list[j]+'/'+arr[j]    #目标文件路径
        #name = dicom_directory.split('\\')[2]

        output_folder = 'D:/Study/数据集/数据2/'+ path_list[j]                 #存储路径

        dicom2nifti.convert_directory(dicom_directory, output_folder, compression=True, reorient=True)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值